副件(1)- c语言复习题 下载本文

3.若变量tr的值为-35000,则以下对tr的定义正确的是( ) A.char tr; B.Long tr; C.int tr; D.long tr; 4.以下for语句表达式正确的是( )

A.for(m=0,s=0,m<100,m++) B.for(m=0,s=0;m<100;m++) s=s+m; s=s+m;

C.for(m=0;s=0;m<100;m++) D.for(m=0,s=0;m<100;m++;) s=s+m; s=s+m;

9.有下面的输入语句:scanf(“a=%d,b=%d%c”,&a,&b,&c);为使变量a的值为8,b为5,c为’A’,从键盘输入数据的正确的形式应当是( ) A.8 5 A B.a=8 b=5 A C.a=8,b=5A D.a=8,b=5’A’ 12.以下程序段输出结果正确的是( ) main() {

int a=0,b=1;

a=(a-=2,b+=2,a+b); printf(“%d\\n”,a); }

A.0 B.1 C.-1 D.2

13.以下程序段什么时候退出循环?描述正确的是( ) #include main() {

char ch; do

{ch=getchar(); putchar(ch);

}while(ch!=’$’); }

A.当输入的字符为’$’时退出 B.为0时结束

C.死循环 D.当输入任何字符时退出 14.表达式19/3的值为( )

A.6 B.6.3 C.1 D.7 三、阅读程序:(每小题4分,共24分) 2.main() { int I;

for(I=1;I<=5;I++) {if(I%2==0)

printf(“#”); else

continue;

printf(“*”);}

printf(“$\\n”); }

程序运行结果:_______________________________ 3.main() {

int x=0,y=1,z=2; switch(x)

{case 0:switch(y)

{case 1:printf(“$”);

case 0:printf(“#”);break;} break;

case 1:switch(z==2)

{case 1:printf(“%”);break; case 0:printf(“?”);break; } } }

程序运行结果:_______________________________ 4.main() { int a=1; while(a<11)

if(++a%3!=1) continue; else printf(“%d”,a); }

程序运行结果:_______________________________ 6.main() {

int a=1,b=2,c=3; a++;c+=b; {

int b=4,c; c=2*b; a+=c;

printf(“%d,%d,%d”,a,b,c); }

printf(“%d,%d,%d\\n”,a,b,c);

程序运行结果:_______________________________ 四、程序填空:(每空3分,共24分) 1.下列程序实现求s=3+5+7+?+29之和。 main()

{int I,sum=0;

for(I=3;I<=29; ) sum= ;

printf(“sum=%d\\n”,sum); }

2.下列程序实现输入两个整数,交换顺序后将其输出。 main() {

int a,b, ; scanf(“%d%d”,&a,&b); a=b;

printf(“%d %d”,a,b); }

五、编程:(1小题10分,2小题12分)

1.从键盘输入一个3位整数,求这个3位数的各位数字之和。如:输入的3位整数是128,则输出结果为11。

2.输入10个整数到数组sc中,然后统计并输出大于0的偶数的个数。 3.求(x+y)/2-(x-y)/2的值。

《C语言程序设计》(八)

一、填空题:(每空2分,共20分)

1.字符变量ch的值为26个小写英文字母之一的逻辑表达式是 。 2.在C语言中,所说的空白字符是

指 、 、 。 二、单项选择题:(每小题2分,共30分) 1.下列说法不正确的是( ) A.C语言是一个函数式语言。

B.C程序的执行顺序是严格按照语句的书写顺序从上到下地执行。 C.在C程序中标识符后的一对小括号是函数的标记。

D.C的书写格式很自由,一行内可以写多个语句,一个语句也可以写在多行。 2.在下列变量说明中,正确的是( )

A.char ‘a1’ B.int b;

C.float sum;a;b; D.longc1,c2; 4.以下表达式的值为 M=(x=4,x+=4,(b=6)+x)

A.4 B.10 C.14 D.18 5.下列说法不正确的是( )

A.在C语言中,乘号“*”不可以省略。

B.在C程序中,字符串常量可以赋给一个简单变量。 C.在C程序中,可以对任何数据进行自加或自减运算。

D.以上说法都是正确的。

6.设已定义m1,m2,m3,m4为int类型变量,为了将整数10赋给m1、m3,将整数20赋给m2、m4,则对应以下scanf函数调用语句的正确输入方法是( )(代表换行符,□代表空格) scanf(“%d%d”,&m1,m2); scanf(“%d%d”,&m3,m4);

A.1020〈CR〉 B.10□20〈CR〉 1020〈CR〉 10□20〈CR〉 C.10,20〈CR〉 D.10□20〈CR〉 10,20〈CR〉 10,20〈CR〉 7.对于函数getchar(),下列叙述正确的是( ) A.该函数的功能是从键盘上接收一个字符串。

B.欲将该函数接收到的值赋给变量ch,可写成如下语句:getchar(ch); C.当接收到数字时,该函数也将按字符处理。

D.使用本函数前,可不写预处理命令#include. 8.对程序段if(x>y) z=1;

else if(x>0) z=2; else z=3;

要得到z=3的结果,满足条件的一组数是( ) A.x=-1,y=-2 B.x=-2,y=-1 C.x=2,y=1 D.x=2,y=3

9.在while循环中,判断循环是否终止的时候是( ) A.任何地方,只要条件不满足就终止。 B.在测试循环条件时进行判断。 C.在循环体执行过程中判断。 D.以上均不对。

10.下列程序中有错的语句是( ) main( ) {

int I=1,s=1; (1)

for(;I<=100;I++) (2) s=s+I; (3)

printf(“%d”,s); (4) } (5)

A.(1)(2)(3) B.(2)(4) C.(3)(5) D.(3)(4)

12.以下库函数的原型说明不是位于头文件”stdio.h”的是( ) A.random() B.printf() C.getchar() D.scanf()

15.下列关于switch语句和break语句的结论中,只有( )正确的。 A.break语句一定是switch语句的一部分。

B.在switch语句中可以根据需要使用或不使用break语句。 C.在switch语句中必须使用break语句。 D.以上三个结论中有两个是正确的。

三、阅读程序,写出运行结果:(每小题4分,共24分)

1.#include

main()

{ char c; int c1,c2; c=getchar(); c1=c-1; c2=c+1;

putchar(c);

putchar(‘\\n’);

printf(“%c□%c\\n”,c1,c2); }

运行时输入数据:B 运行结果:_______________________ 2.main() {

int n,x,y,z; printf(“请输入一个不大于1000的整数:”); scanf(“%d”,&n); x=n/100;

y=(n-x*100)/10; z=n;

printf(“%d□%d□%d\\n”,z,y,x); }

请输入一个不大于1000整数:749

运行结果:_________________________ 3.main() {

int a,b,c,d,x; a=c=0; b=1; d=20;

if(a) d=d-10;

else if(!b) d=10; else d=15; printf(“d=%d”,d); }

程序运行结果:_________________________ 4.main() {int x,y,z; x=1,y=3,z=1; do

{ x=(y-x)*2+y; y=(x-y)*2+x;

if(z++%2==0) printf(“%d\\n”,y);