MID-TERM EXAMINATION

 

MID-TERM EXAMINATION

4-1

对于如下嵌套的 if – else 语句,在空格中填上True或者False。请注意,直接填单词(区分大小写),前后不要加空格等任何其他字符。

if(表达式1)
  if(表达式2)语句1;   
else  
   if(表达式3)语句2;   
   else  语句3;  

当表达式1为True且表达式2为True 时,执行语句1;
当表达式1为True且表达式2为 False且表达式3为True时,执行语句2;
当表达式1为True且表达式2为False且表达式3为False时,执行语句3

4-2

以下程序段的运行结果是9(4分)。请注意,直接填数字,前后不要加空格等任何其他字符。

char c = ’b’; 
int k = 4;
switch(c){
    case 'a': k = k + 1; break;
    case 'b': k = k + 2;
    case 'c': k = k + 3;	
}
printf("%d",k);	

4-3

运行以下程序后,如果从键盘上输入china#<回车>,则输出结果为c1=2,c2=5(4分)。

#include 
int main(void)
{
	int c1=0,c2=0;
	char ch;                      
	
	while((ch=getchar()) !='#')
	switch(ch)
	{	case 'a':
		case 'h':c1++;
		default:c2++;
	}
	printf("c1=%d,c2=%d\n",c1,c2);
	
	return 0;
}

 

4-4

若变量已正确定义,执行以下程序段,并回答下列问题。请注意,直接填数字,前后不要加空格等任何其他字符。

i = 1;
while (i<= 10)
    i++;                 /* 语句① */
    printf("%d\n", i);   /* 语句② */

语句①执行了(1分)10 次

语句②执行了(1分)1 次

循环体语句共执行了(1分)10 次

当循环结束时,变量i的值是11(1分)

 

6-1

 自然数各位数字的平方和(*) (10分)

请编写函数,求自然数各位数字之和。

函数原型

int SumSqrDigit(int number);

说明:参数 number 为自然数。函数值为 number 的各位数字的平方和。若 number 为零,则函数值为零。

裁判程序

#include 

int SumSqrDigit(int number);

int main()
{
    int n;
    scanf("%d", &n);
    printf("%d\n", SumSqrDigit(n));
    return 0;
}

/* 你提交的代码将被嵌在这里 */

输入样例1

2

输出样例1

4

输入样例2

150

输出样例2

26
int SumSqrDigit(int number)

{
    int a,n=0,b,sum=0;
    a=number;
    if(a==0)
        n=1;
    else{
        while(a>0){
            a/=10;
            n++;
        }
    }
    for(int i=1;i<=n;i++){
        b=number%10;
        sum+=b*b;
        number/=10;
    }
    return sum;
}

 

 

6-2 

数字金字塔 (15分)

本题要求实现函数输出n行数字金字塔。

函数接口定义:

void pyramid( int n );

其中n是用户传入的参数,为[1, 9]的正整数。要求函数按照如样例所示的格式打印出n行数字金字塔。注

意每个数字后面跟一个空格。

裁判测试程序样例:

#include 

void pyramid( int n );

int main()
{    
    int n;

    scanf("%d", &n);
    pyramid(n);

    return 0;
}

/* 你的代码将被嵌在这里 */

输入样例:

5

输出样例:

    1 
   2 2 
  3 3 3 
 4 4 4 4 
5 5 5 5 5 
void pyramid( int n )
{
    for(int i=1;i<=n;i++){
    for(int k=n-i;k>0;k--) 
        printf(" ");
    for(int j=1;j<=i;j++){
        printf("%d ",i);
        if(j==i) printf("\n");
        }
    }
}

 

你可能感兴趣的:(PTA练习笔记,c++)