16.以下程序的输出结果是 。 #include
{int i=0,a=0; while(i<20)
{for(;;) {if((i)= =0) break;else i--;} i+=11; a+=i; }
printf(\}
A)21 B)32 C)33 D)11
17.当输入为\时,下面程序的执行结果是 。 #include
{char c;c=getchar();
while((c=getchar())!='?') putchar(++c);}
A)Quert B)vfsu C)quert? D)rvfsu?
18.当输入为\时,下面程序的执行结果是 。 #include
{while(putchar(getchar())!='?');}
A)quert B)Rvfsu C)quert? D)rvfsu?
19.当输入为\时,下面程序的执行结果是 。 #include
{char c;c=getchar(); while(c!='?') {
putchar(c); c=getchar(); } }
A)quert B)Rvfsu C)quert? D)rvfsu?
20.在C语言的循环语句for,while,do-while中,用于直接中断最内层循环的语句是 。
A)switch B)continue C)break D)if
21.
22.以下程序的功能是:按顺序读入10名学生的4门课程的成绩,计算出每位学生的平均分并输出,程序如下:
main() {int n,k;
float score,sum,ave; sum=0.0;
for(n=1;n<=10;n++)
{for(k=1;k<=4;k++)
{scanf(\ave=sum/4.0;
printf(\} }
上述程序有一条语句出现在程序的位置不正确。这条语句是 。
A)sum=0.0; B)sum+=score;
C)ave=sum/4.0; D)printf(\30. 以下能正确计算1×2×3×…×10的程序段是 。
A)do {i=1;s=1; s=s*i; i++; } while(i<=10); B)do {i=1;s=0; s=s*i; i++; } while(i<=10); C)i=1;s=1; do {s=s*i; i++; } while(i<=10);
D)i=1;s=0; do {s=s*i; i++; } while(i<=10); 34. 以下程序的运行结果是: 。
main( ) { int n=4; while(n--)
printf (“-”,--n);}
A)2 0 B)3 1 C)3 2 1 D)2 1 0 35.
36. 下面程序的运行结果是: 。 #include
for ( I = 1; I <=5; I++) switch ( I%5 )
{ case 0: printf ( “ * ” ); break; case 1: printf ( “ # ” ); break; default : printf (“\\n”);
case 2: printf ( “ &” ); break; } }
A)#&&* B)#& C)# D)#&
& &
&* & *
& *
三、程序填空题
1.以下程序的功能是:从键盘上输入若干个学生的成绩,统计并输出最高成绩和最低成绩,当输入负数时结束输入。请填空。
main()
{float x,amax,amin;
scanf(\amax=x; amin=x;
while (1) {if(x>amax) amax=x;
if (2) amin=x; scanf(\}
printf(\}
3.以下程序的功能是根据e?1?空: main( )
{int i=1; double e,new; e=1.0; new=1.0; while( (1) )
{new/=(double) i; e+=new; (2) ;} printf(“e=%e\\n”,e);
}
四、读程序写结果题
1.
2.下面程序的输出结果是 。 main() {int s,i;
for(s=0,i=1;i<3;i++,s+=i); printf(\}
3.下面程序的输出结果是 。 main()
{int i=10,j=0; do
{j=j+i;i--;} while(i>2);
printf(\}
4.设有以下程序 main() {int n1,n2;
scanf(\while(n2!=0) {n1=n2;
111?6???...求e的近似值,精度要求为10。请填1!2!3!
n2=n2/10;
printf(\}
}程序运行后,如果从键盘上输入1298,则输出结果为 。 5.下面程序的输出结果是 。 main() {int s=0,k;
for(k=5;k>=0;k--) {switch(k) {case 1:
case 5:s++;break; case 3:
case 4:break; case 0:
case 2:s+=2;break; } }
printf(\}
6.下面程序运行结果是: 。 main( ) { int x, i ;
for( i=1,x=1; i<=50; i++ ) { if(x>=10) break;
if(x%2==1) { x+=5;continue;} x - = 3;}
printf(“%d\\n”, i ); }
第五
一、选择题
1.在C语言中,引用数组元素时,其数组下标的数据类型允许是 。
A)整型常量 B)整型常量或整型表达式 C)整型表达式 D)任何类型的表达式 2.以下对一维整型数组a的正确说明是 。
A)int a(10); B)int n=10,a[n]; C)int n; scanf(“%d”,&n); int a[n]; D ) #define SIZE 10 int a[SIZE]; 3.下面程序的运行结果是 。 main() {int a[6],i;
for(i=1;i<6;i++)
{ a[i]=9*(i-2+4*(i>3))%5;
printf(\}
}
A)-4 0 4 0 4 B)-4 0 4 0 3 C)-4 0 4 4 3 D)-4 0 4 4 0
4.设有char str[10],下列语句正确的是 。
A) scanf(\ B) printf(\ C) printf(\ D) printf(\
5.分析下列程序 main()
{int n[3],i,j,k; for(i=0;i<3;i++) n[i]=0; k=2;
for(i=0;i }上述程序运行后,输出的结果是 。 A)2 B)1 C)0 D)3 6. 若有以下定义: int a[5]={ 5, 4, ,3, 2, 1 } ; char b= ?a?, c, d, e;则下面表达式中数值为2的是 。 A)a [3] B)a [e – c] C)a [d-b] D)a [ e-b ] 7.下面能用来把字符串str2连接到字符串str1后的一个是: 。 A)strcat(str1,str2) ; B)strcat(str2,str1); C)strcpy(str1,str2) ; D)strcmp(str1,str2); 8.设有两字符串“Beijing”、“China”分别存放在字符数组str1[20],str2[10]中,下面语句中能把“China”连接到“Beijing”之后的为: A)strcpy(str1,str2); B)strcpy(str1, “China”); C)strcat(str1,“China”); D)strcat(“Beijing”,str2); 9.若有如下定义: int a[3][3]={1,2,3,4,5,6,7,8,9},i ; 则下列语句的输出结果是: 。 for (i=0;i<=2;i++) printf(“%d”,a[i][2-i]); A)3 5 7 B)3 6 9 C)1 5 9 D)1 4 7 10.下列字符串赋值语句中,不能正确把字符串C program赋给数组的语句是: 。 A)char a[]={?C?,? ?,?p?,?r?,?o?,?g?,?r?,?a?,?m?}; B)char a[10]; strcpy(a, “C program”); C)char a[10]; a= “C program”; D)char a[10]={ “C program”}; 11. 下面程序的运行结果是 。 char c[5]={‘a’,‘b’,‘\\0’,‘c’,‘\\0’}; printf(“%s”,c); } A)‘a’‘b’ B)ab\\0c\\0