(单选题)
1.合法的C 语言语句是( )。
A)int x=y=10; B)char c=65;
C)float f=f+1.1; D)double x=12.3E2.5;
2.设int n1=0,n2,*p=&n2,*q=&n1;,以下赋值语句中与n2-n1;语句等价的是( )。
A)*p=*q; B)p=*q;
C)*p=n1; D)p=q;
3.通过键盘输入数据,为数组中的所有元素赋值,在程序中下划线处应填入的是( )。
A)x[i+1] B)x+i
C)x+(i++) D)X[++i]
4.子函数的功能是通过键盘输入给x 所指的整型数组所有元素赋值。 在下划线处应填写的是( )。
A)x+m B)x[++m]
C)x+(m++) D)x[m+1]
5.设int x[6]={2,4,6,8,5,7},*p=x,i;要求依次输出x 数组中6 个元素的值,不能完成此操作的语句是( )。
A)for(i=0;i<6;i++)printf("%2d",*(p++));
B)for(i=0;i<6;i++)printf("%2d",*(p+i));
C)for(i=0;i<6;i++)printf("%2d",*p++);
D)for(i=0;i<6;i++)printf("%2d",(*p)++);
6.执行以下程序段后,k 的值是( )。
int k=0,a=1,b=2,c=3;k=a<b? b:a; k=k>c? c:k;
A)1 B)2
C)3 D)0
7.执行以下程序段后,w 的值为( )。
int w='A',x=14, y=15;
w=((x||y)&(w<'a'));
A)-1 B)2 C)1 D)0
8.若char s[10]="Chinese\0\0";,则strlen(s)的值是( )。
A)7 B)8 C)9 D)10
9.若int x=12; double y=3.141593; 则printf("%d%8.6f",x,y);的输出结果是( )。
A)123.141593 B)12 3.1415930
C)12, 3.141593 D)123.141593
10.为使以下程序段不陷入死循环,从键盘输入的数据应该是( )。
int n,t=1,s=0;
scanf("%d",&n);
do{s=s++;t=t-2;}while(t! =n);
A)任意自然数 B)任意小数
C)任意正偶数 D)任意负奇数
11.要通过语句scanf("%d,%d,%d",&a,&b,&c);给a 赋值1、给b 赋值2、给c 赋值3,以下输入形式中错误的是( )。
A)□□□1,2,3 B)1,□□□2,□□□3
C)1,2,3 D)1□2□3
12.要通过scanf ("%d%c%d%c",&a1,&c1,&a2,&c2); 语句为变量a1 和a2 赋数值1 和2,为变量c1 和c2 赋字符a 和b。 以下所示的输入形式中正确的是( )。
A)1□a2□b B)1□a2□b
C)1a 2b D)1□a□2□b
13.设int a;float b;执行scanf("%2d%f",&a,&b);语句时,若从键盘输入876 543.0,则a和b 的值分别是( )。
A)543 和876.0 B)87 和6.0
C)876 和543.0 D)765 和543.0
14.若int a,b;通过语句scanf("%d;%d",&a,&B);能把整数3 赋给变量a,5 赋给变量b的输入数据是( )。
A)3,5 B)35 C)3;5 D)3 5
15.若有定义int a;float b;double c; 程序运行时输入: 3 4 5 能把值3 输入给变量a、4 输入给变量b、5 输入给变量c 的语句是( )。
A)scanf("%d%1f%1f",&a,&b,&c);
B)scanf("%d%f%lf",&a,&b,&c);
C)scanf("%d%f%f",&a,&b,&c);
D)scanf("%1f%1f%1f, &a,&b,&c);
16.设有定义:double a,b,c;若要求通过输入分别给a、b、c 输入2、3、4,输入形式如下2.0 3.0 4.0 则能进行正确输入的语句是( )。
A)scanf("%1f%1f%1f",a,b,c);
B)scanf("%f%f%f",&a,&b,&c);
C)scanf("%1f%1f%1f",&a,&b,&c);
D)scanf("%5.11f%5.11f%5.11f",&a,&b,&c);
17.关于C 语言程序的叙述中正确的是( )。
A)当用scanf 从键盘输入数据时,每行数据在没按下回车键(Enter 键)前,可以任意修改
B)复合语句在语法上包含多条语句,其中不能定义局部变量
C)空语句就是指程序中的空行
D)花括号对{}只能用来表示函数的开头和结尾,不能用于其他目的
18.关于scanf 和printf 的叙述中正确的是( )。
A)在scanf 函数中的格式控制字符串是为了输入数据用的,不会输出到屏幕上
B)在使用scanf 函数输入整数或实数时,输入数据之间只能用空格来分隔
C)在printf 函数中,各个输出项只能是变量
D)使用printf 函数无法输出百分号%
19.关于scanf 语句叙述中正确的是( )。
A)在scanf 函数的格式控制字符串中,必须有与输入项一一对应的格式转换说明符
B)复合语句也被称为语句块,它至少要包含两条语句
C)scanf 函数中的格式控制字符串,是提示程序员的,输入数据时不必管它
D)只能在printf 函数中指定输入数据的宽度,而不能在scanf 函数中指定输入数据占的宽度
20.设s1 和s2 分别指向两个字符串。 若要求:当s1 所指字符串大于s2 所指字符串时,执行语句S;则以下选项中正确的是( )。
A)if(s1>s2)S;
B)if(strcmp(s1,s2))S;
C)if(strcmp(s2,s1)>0)S;
D)if(strcmp(s1,s2)>0)S;
21.与其他三个选项的含义不同的是( )。
A)if(k%2)
B)if(k%2==1)
C)if((k%2)! =0)
D)if(! k%2==1)
22.关于if(表达式)中的“表达式”叙述正确的是( )。
A)必须是整数表达式
B)必须是关系表达式
C)必须是逻辑表达或关系表达
D)可以是任意合法的表达式
23.以下程序段的输出结果是( )。
A)1,2,3,4
B)0,0,1,2
C)编译有错
D)0,1,2,0
24.以下程序的输出结果是( )。
A)-1 B)0 C)1 D)2
25.在语句if (W)printf("%d\n",k);中,不可代替W 的选项是( )。
A)a==b+c B)ch=getchar()
C)a<>b+c D)a++
26.以下程序段的输出结果是( )。(www.xing528.com)
A)a=30 b=50 c=10 B)a=10 b=30 c=10
C)a=10 b=50 c=10 D)a=50 b=30 c=50
27.与if(a==1)a=b; else a++;语句功能不同的switch 语句是( )。
28.若int a,b;,则合法的switch 语句是( )。
29.以下程序输出的结果是( )。
A)a=0, b=2 B)a=1, b=2
C)a=1, b=0 D)a=2, b=1
30.若float x=1.5; int a=1,b=3,c=2;则正确的switch 语句是( )。
A)switch(a+b){ case 1:printf("*\n");case 2+1: printf("**\n");}
B)switch(a+b){ case 1:printf("*\n"); case c:printf("**\n");}
C)switch(x){ case 1.0: printf("*\n"); case 2.0: printf("**\n");}
D)switch((int)x);{ case 1:printf("*\n"); case 2:printf("**\n");}
31.关于Switch 语句的叙述中正确的是( )。
A)break 语句必须与switch 语句中的case 配对使用
B)在switch 语句中必须使用default
C)在switch 语句中,不一定使用break 语句
D)break 语句只能用于switch 语句
32.在嵌套if 语句中,else 语句总是( )。
A)和之前的第一个if 配对
B)和之前与其最近的if 配对
C)和之前与其最近的且不带else 的if 配对
D)和之前与其具有相同缩进位置的if 配对
33.与语句:k=a>b? (b>c? 1:0):0;功能相同的是( )。
A)if(a>b)k=1; else if(b>c)k=1; else k=0;
B)if((a>b)||(b>c))k=1; else k=0;
C)if((a>b)&&(b>c))k=1;else k=0;
D)if(a<=b)k=0; else if(b<=c)k=1;
34.关于“while(条件表达式)循环体”,以下叙述正确的是( )。
A)条件表达式的执行次数与循环体的执行次数无关
B)条件表达式的执行次数与循环体的执行次数一样
C)条件表达式的执行次数总是比循环体的执行次数多一次
D)循环体的执行次数总是比条件表达式的执行次数多一次
35.以下程序的输出结果是( )。
A)y=3 B)y=-1
C)y=2 D)y=1
36.以下程序的输出结果是( )。
A)1 B)0
C)-1 D)2
37.以下程序的输出结果是( )。
A)y=0 B)y=-1
C)y=1 D)y=2
38.以下程序运行时,若输入1 2 3 4 5 0,输出结果是( )。
A)6666656 B)6566456
C)66666 D)66656
39.关于do-while 循环的叙述中正确的是( )。
A)条件表达式的执行次数总是比循环体的执行次数多一次
B)循环体的执行次数总是比条件表达式的执行次数多一次
C)条件表达式的执行次数与循环体的执行次数无关
D)条件表达式的执行次数与循环体的执行次数一样
40.不会形成死循环的是( )。
A)n=0;do{++n;}while(n<=0);
B)x=0;while(1){x++;}
C)x=10; while (x){x--;}
D)for(n=0,i=1;;i++)n+=i;
41.若int i,k,则关于for(i=0,k=-1;k=1; k++)printf("*****\n");语句执行情况的叙述中正确的是( )。
A)循环体不执行
B)循环体执行一次
C)循环体执行二次
D)构成无限循环
42.若int k,则关于for(k=-l;k<0;k++)printf("****\n");语句执行情况的叙述中正确的是( )。
A)循环体不执行
B)循环体执行一次
C)循环体执行二次
D)构成无限循环
43.关于以下程序段执行情况的叙述,正确的是( )。
A)for 循环语句固定执行8 次
B)当产生的随机数n 为1 和2 时不做任何操作
C)当产生的随机数n 为0 时结束程序运行
D)当产生的随机数n 为4 时结束循环操作
44.以下程序的输出结果是( )。
A)741 B)852
C)963 D)421
45.以下程序的输出结果是( )。
A)m=3 B)m=4
C)m=5 D)m=6
46.以下程序的输出结果是( )。
A)**** B)***
C)** D)*
47.以下程序的输出结果是( )。
A)1*1=11*2=2 1*3=3 2*1=2 2*2=4 3*1=3
B)1*1=11*2=2 2*2=4 1*3=3 2*3=6 3*3=9
C)1*1=11*2=2 1*3=3 2*2=4 2*3=6 3*3=9
D)1*1=1 2*1=2 2*2=4 3*1=3 3*2=6 3*3=9
48.有关于continue 和break 的叙述中正确的是( )。
A)在循环体内使用break 语句和continue 语句的作用相同
B)break 语句只能用在循环体内和switch 语句体内
C)continue 语句的作用是:使程序的执行流程跳出包含它的所有循环
D)break 语句只能用于switch 语句体中
49.关于continue 和break 的叙述中正确的是( )。
A)break 语句不能用于提前结束for 语句的本层循环
B)continue 语句使得整个循环终止
C)使用break 语句可以使流程跳出switch 语句体
D)在for 语句中,continue 与break 的效果是一样的,可以互换
50.关于continue 和break 的叙述中正确的是( )。
A)当break 出现在循环体中的switch 语句体内时,其作用是跳出该switch 语句体,并中止循环体的执行
B)只能在循环体内和switch 语句体内使用break 语句
C)continue 语句的作用是:在执行完本次循环体中剩余语句后,中止循环
D)在while 语句和do-while 语句中无法使用continue 语句
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。