C语言基础知识习题 下载本文

5.在循环体中用来强制继续循环的语句是( )

A.break B.continue C.exit D. return 6.下列程序段中循环体执行的次数是( ) int x=-1;do{x=x*x;}while(! x);

A. 0 B. 1 C. 2 D. 无限

7.设int m=5;语句while (m==0)printf (″%d″,m-=2);的循环体执行的次数是( )

A. 0 B. 1 C. 2 D. 无限

8.语句for(a=0;a==0;a++);和语句for(a=0;a=0;a++);执行循环的次数分别是( )

A.0,0 B.0,1 C.1,0 D.1,1 9.执行下列程序段后x的值为( )

int i=1, j=10, x; for (; i<=j; i++, --j) x=i;

A.5 B.6 C.7 D.8 10.以下程序的运行结果是( )

int x,y,z=1; for(x=1,y=-1;xb);

A.1,3 B.1,4 C.2,3 D.2,4 12.设for(i=0, j=10; (j>0)&&(i<4); i++, j--);该语句的循环次数是( ) A.0 B.3 C.4 D.无限 13.执行语句for(i=1;i++<4);后i的值是( )

A. 3 B. 4 C. 5 D. 不确定 14.以下程序段中的变量已正确定义,程序段的输出结果是( ) for(i=0;i<4;i++,i++) for(k=1;k<3;k++);printf(\

A.******** B.**** C.** D.*

15.设变量已正确定义,以下不能统计出一行中输入字符个数(不包含回车符)的程序段是( ) A.n=0; while((ch=getchar())!='\\n') n++; B.n=0; while(getchar()!='\\n') n++;

C.for(n=0;getchar()!='\\n';n++); D.n=0;for(ch=getchar();ch!='\\n';n++); 16.以下程序运行后的输出结果是( ) main()

{ int i,j,m=1; for(i=1;i<3;i++)

{ for(j=3;j>0;j--) { if(i*j>3) break; m*=i*j; } } printf(\

A.m=6 B.m=2 C.m=4 D.m=5 17.以下程序运行后的输出结果是( ) main()

{ int n=2,k=0; while(k++&&n++>2); printf(\A.0 2 B.1 .3 C.5 7 D.1 2

18.以下程序运行后的输出结果是( ) main()

{ int c=0,k;

for(k=1;k<3;k++) switch(k)

{ default: c+=k;

case 2: c++;break;

case 4: c+=2;break; } printf(\

A.3 B.5 C.7 D.9 19.以下程序的运行结果是( ) main()

{ int i,j;

for(i=3;i>=1;i--) { for(j=1;j<=2;j++) printf(\ \printf(\

A.2 3 4 B.4 3 2 C.2 3 D.4 5

3 4 5 5 4 3 3 4 3 4

4 5 2 3 20.以下程序的运行结果是______。 #include main()

{int a=1,b=2;

for( ;a<8;a++) {b+=a;a+=2;}printf(\

A.9,18 B.8,11 C.7,11 D.10,14 二、填空题

1.continue语句可以出现在for、while和 语句中。

2.执行循环语句for(;‘0’;)printf(“Happy!\\n”);后,输出“Happy!”的行数是_______。

3.设int n;执行for(n=0;n= =0;n++)n=0;则循环体被执行的次数是_________。 4.执行语句for(i=10;i>0;i--,);则变量i的值是___________。

5.设有循环语句for(i=-1;i<=5;i++)i++;则其循环体执行的次数是___________。

6.以下程序运行后的输出结果是______。 main()

{ int a=1,b=7; do{ b=b/2;a+=b; }while(b>1); printf(\7.程序运行后的输出结果是______。 main( )

{int i=0,j =0,k=0; while (i< 10) i++; while (j++

main()

{ int f,f1,f2,i; f1=0;f2=1; printf(\

for(i=3;i<=5;i++) { f=f1+f2; printf(\f1=f2;f2=f;} printf(\

9.执行下面程序段,输出“FIFA”的行数是____________。

int i,j;for(i=0;i<5;i++) for(j=1;j

10.执行下列程序段后,输出结果是____________。 int x=3;do{ptintf(\%3d\,x-=2);}while(!(--x)); 11.以下程序的输出结果是______。 main()

{ int i,j,sum; for(i=3;i>=1;i--) { sum=0; for(j =1;j<=i;j++) sum+=i*j;}

printf(\

12.下列程序运行时,若输入1abcedf2df<回车> 则输出结果为______。 main()

{ char a=0,ch;

while((ch=getchar())!='\\n')

{ if(a%2!=0&&(ch>='a'&&ch<='z')) a++;putchar(ch); } printf(\

13.以下程序运行后的输出结果是______。 main()

{ int k=1,s=0; do{ if((k%2)!=0) printf(\main()

{ int a,b,i; a=b=0; for(i=0;i<=10;i+=2){a+=i;b+=i+1;} 15.程序运行后的输出结果是______。 main()

{ int a=0,b=2,c=3; switch (a)

{ case 0:switch (b==2)

{ case l:printf(“*”);break; case 2: printf (“%”);break;} case 1: switch (c)

continue;

s+=k;

k++;

}while(k>10);

ch=ch-'a'+'A';

14.程序运行后的输出结果是______。

printf(″a=%d\\n″,a); printf(″b=%d\\n″,b-11);}

{ case l:printf(“$”);break; case 2: printf (“&”);break;

default: printf (“#”);} } 16.程序运行后的输出结果是______。 main()

{ int m,n; for(m=1;m<=3;m++)

{for(n=1;n<=2*m-l;n++)printf (“*”);printf(“\\n”);} } 17.以下程序的运行结果是______。 main()

{int x=15; while(x<20) {x++; if(x/3!=0){x++ ;break;} else continue;} printf(″%d\\n″,x);}

三、程序填空题 1.一个三位整数(100~999),若各位数的立方和等于该数自身,则称其为“水仙花数”(如:153=13+53+33), 找出所有的这种数。 main( )

{ int n, a, b, c; for(c=1;c<=9;c++) for (b=0; b<=9;b++)

for( ;a++)

{n=_________; if(a*a*a+b*b*b+c*c*c==_________) printf(″%d\\n″, n); } }

2.为n输入一个正整数值后,计算并输出sum=1- 的值。 main()

{int n,k=0; float_______; scanf(″%d″,&n); do {k++;

if(________)sum+=1.0/k;

else sum-=1.0/k;}while(________); printf(″sum=%.4f\\n″,sum);}

3.输入一个英文字符串(换行符作为结束),分别统计并输出其中元音字母(大小写不加区别)各自出现的次数。元音字母:(a,A),(e,E),(i,I),(o,O),(u,U) main( )

{ int ; char c; while( !=′\\n′) switch ( )

{case′a′:case′A′:a++; break;

case′e′:case′E′:e++;break; case′i′:case′I′:i++;break; case′o′:case′O′:o++;break; case′u′:case′U′:u++;}

printf(″(a,A)=%d,(e,E)=%d,(i,I)=%d,(o,O)=%d,(u,U)=%d\\n″,a,e,i,o,u); }

第五章函数 一、选择题

1.关于函数,下列叙述正确的是( )

A.一个函数中可以定义其它的函数 B.C程序总是从main()函数开始执行 C.main()函数也可以被其它函数调用 D.一个C程序可以有多个main()函数 2.关于C语言程序描述正确的是( )

A.函数必须要有return语句 B.主函数必须位于程序的开头 C.程序中每行只能写一条语句 D.一个程序中只能有一个主函数 3.在C语言程序中,主函数的摆放位置( )

A.必须置于所有函数之首 B.必须置于所有函数之尾 C.不得置于所有函数之尾 D.任意

4. 若用数组名作为函数调用时的实参,则实际上传递给形参的是( ) A. 数组的第一个元素值 B. 数组元素的个数 C. 数组中全部元素的值 D. 数组首地址 5.以下关于return语句的叙述中正确的是( ) A.一个自定义函数中必须有一条return语句

B.一个自定义函数中可以根据不同情况设置多条return语句 C.定义成void类型的函数中可以有带返回值的return语句

D.没有return语句的自定义函数在执行结束时不能返回到调用处 6.以下叙述中错误的是( )

A.用户定义的函数中可以没有return语句 B.用户定义的函数中可以有多个return语句,以便可以调用一次返回多个函数值

C.用户定义的函数中若没有return语句,则应当定义函数为void类型 D.函数的return语句中可以没有表达式 7.以下叙述正确的是( )

A.C语言程序是由过程和函数组成的

B.C语言函数可以嵌套调用,例如:fun(fun(x)) C.C语言函数不可以单独编译

D.C语言中除了main函数,其他函数不可作为单独文件形式存在 8.在一个C语言程序中( )

A. 主函数只能有一个 B. 主函数可以有多个

C. 非主函数只能有一个 D. 主函数和非主函数都可以有多个 9.对函数而言,下列说法正确的是( )

A.一个程序中可以出现一个以上的主函数 B.函数与主函数可以互相调用 C.用户自定义的函数必须有形式参数