很经典的一些题目,有兴趣的人可以做做!我给我学生考
理解C语言的奥秘!理解计算机是如何运算的,理解程序逻辑思维!
如果一个变量是一个水果框的话,那么一维数组就是一排型号相同的水果框,二维数组就是相同型号的水果框放成多排,结构体就是水果摊,不同型号的水果框在一起。
第56题,请大家讨论一下!
选择题
请选择正确答案并填写在答题卡上,不填写答题卡上的答案无效。每一道题目,所有答案都选对则该题得分,所选答案错误或不能选出所有正确答案,则该题不得分。
1、以下选项中属于C语言的数据类型是()。(选择一项)
A、复数型;
B、逻辑型;
C、双精度型;
D、集合型。
2、执行下列C语言程序时输入:123 456 789,输出的结果是()。(选择一项)
main(){
char s[100];
int c,i;
scanf(“%c”,&c);
scanf(“%d”,&i);
scanf(“%s”,s);
printf(“%c,%d,%s/n”,c,i,s);
}
A、123,456,789
B、1,456,789
C、1,23,456,789
D、1,23,456
3、观察如下C语言程序,该程序的输出结果是(c)。(选择一项)
void main(){
int a=1,b;
b=a-1;
if(b<a-2)
printf(“%d/n”,b-1);
else
if(b>a+2)
printf(“%d/n”,b);
else
printf(“%d/n”,a);
}
A、0
B、-1
C、1
D、都不对。
4、观察如下C语言程序,该程序的输出结果是(a)。(选择一项)
main(){
int x=1,a=0,b=0;
switch(x){
case 0:b++;
case 1:a++;
case 2:a++;b++;
}
printf(“a=%d,b=%d/n”,a,b);
}
A、 a=2,b=1
B、 a=1,b=1
C、 a=1,b=0
D、a=2,b=2
5、观察如下C语言程序,执行后输出的结果是()。(选择一项)
void main(){
int i=0,s=0;
do{
if(i%2){
i=i+2;
}
i++;
s=s+i;
}
while(i<3);
printf(“%d/n”,s);
}
结果是_____5________________.
6、 观察以下的C语言程序
#include<stdio.h>
foid main(){
Int i,j,num=0;
for(i=0;i<4;i++)
for(j=i;j<2;j++)
num=num+j
printf(“/nThe value of num is %d”,num);
}
程序执行后,num的值应该是( a )。(选择一项,2分)
A 2
B 4
C 0
D 3
7、观察下面的C语言代码,在VC中编译后输出结果是( a )。(选择一项,1.5分)
#include<stdio.h>
void main(){
int temp=10;
printf(“%d”,temp++);
temp++;
printf(“%d”,++temp;);
}
A 1013
B 1112
C 1113
D 1012
8、 C语言中,合法的数组定义是( d )。(选择一项,1.5分)
A int a[]=”tring”;
B int a[5]={0,1,2,3,4,5};
C char a=”tring”;
D char a[]={0,1,2,3,4,5};
9、 执行下面C语言程序:
main(){
char s[12]=”abcde”;
scanf(“%s”,s);
strcat(s,”fgh”);
printf(“%s/n”,s);
}
如果输入123,则输出结果是( )。(选择一项,2分)
A 123fgh
B 123defgh
C ab123fgh
D abcde123fgh
10、 设指针x指向的整型变量值为28,则printf(“%d/n”,++*x);的输出是( c )。(选择一项,2分)
A 27
B 28
C 29
D 表示不合法,报错
11、 C语言中,根据下面的定义
struct person{char name[9];int age;};
struct person class[10]={“John”,17,
“Paul”,19,
“Mary”,18
“Adam”,16};
能打印出字母M的语句是( d )。(选择一项,2分)
A prinft(“%c/n”,class[3].name);
B prinft(“%c/n”,class[3].name[1]);
C prinft(“%c/n”,class[2].name[1]);
D prinft(“%c/n”,class[2].name[0]);
12、C语言中,有初始化数组:intb[]={1,2,3,4,5};
则b[2]的值是(d)。
A null
B 1
C 2
D 3
13、C语言中的函数返回值类型是由(c )决定的。
A retum语句中的表达式类型
B 调用该函数的主调函数类型
C 定义函数时所指定的函数类型
D 调用函数时临时指定
14、 C语言中,已知有学生记录描述为:
Struct student{
Int no ; char name [20];char sex
Struct {
Int year;int month ;int day;
}birth;
} s;
设结构变量s中的“birth”应是”
A birth.year=1985
Birth.mont6h=10
Birth.day=1
B s.year=1985
s.month=10
s.day=1
C s.birth.year=1985
s.birth.month=10
s.birth.day=1
D year=1985
Month=10
Day=1
15、 C 语言中,设有以下变量定义,并已赋确定的值:
Char w; int x; float y; double z;
则表达式w+x+z/y 值的数据类型为(d)。
A)char B)int C)float D)double
16、下面语句中(b)是C语言正确的赋值语句。
A)int a=1;b=2; B) double x=5.5;int y=int(x);
C) int a=b=5; D) intx++;
17、 C语言中,执行下面的程序时,欲将25和2.5分别赋给a和b,正确的输入方式是(d)
Int a;
Float b;
Scanf(“a=%d,b=%f”,&a,&b);
A)25 2.5 B)25,
18、阅读下面初始化数组程序段:
Char a[]=”ABCDEF”;
Char b[]={‘A’,’B’,’C’,’D’,’E’,’F’};
则下面叙述正确的是(B)。
A)a和b完全相同 B)a数组长度比b数组长
C)a和b不相同,a是指针数组D)a和b只是长度相等。
19、 C语言中,设有static char str[]=”Nan Jing”;
则执行printf(“%d/n”,strlen(strcpy(str,”China”)));后的输出结果为(b)。
A)8 B)5 C)6 D)9
20、 C语言中,设有函数调用语句:
Func((a1,a2,a3),(a4,a5));
则函数func中有(c)个形参。
A)1 B)5 C)2 D)不合法
21、若已定义X是整形变量,pb是基类型为整形的指针变量,则正确的赋值表达式是(c)。
A)*pb=&x; B)pb=x; C)pb=&x; D)*pb=*x;
22、设有以下结构体定义
Struct example{
Int x;
Int y;
}v1;
则下面引用或定义中正确的是()。
A)example s=10; B)struct example v2={10,5}
C) struct v2;v2.x=10; D)example v2;v2.x=10;
23、 以下C语言程序输出结果是( )。
#include<stdio.h>
#include<string.h>
Main(){
Char a[ ]=“wourld”,b[ ]=“hi”;
Int n=strcmp(b,a);
Printf(“%d/n”,n);
}
A -1
B 0
C 1
D 2
24、C语言允许函数值类型缺省定义,此时函数值隐含的类型是( )。
A float型
B long型
C int型
D double型
25、 下面C语言程序的输出结果是( )。
Main(){
Struct complx{
Int x,y;
}a[2]={1,3,2,7}
Printf(“%d/n”,a[0].y/a[1].x);
}
A 3
B 2
C 1
D 0
26、以下程序功能是:从键盘输入若干学生的成绩统计并输出最高成绩和最低成绩,当输入负数时结束,补齐代码。
Main(){
float x,amax,amin;
scanf(“%f”, .&x);amax=amin=x;
while( x>=0 )
{
if(x > amax )aman=x
if( x<amin )amin=x;
Scanf(“%f”,&x);
}
printf(“/n anax=%f/n anin=%f/n”,amax,amin);
}
27、以下程序的输出结果是( )?
INT d=1
Void fun (int p){
int d=5;p++;printf(“%d/n,d”);
}
Main(){
int a=3;fun(a);printf(“%d/n”,d)
}
结果是________5_____,______1________.
28、下面的函数用以求y的x次方,请补全所缺语句
Double fun (double y,int x)
{ int i;
double z=1.0;
for(i=1;i_____<=x____;i++)
z=____z*y________;
return z;
}
29、关于C语言,以下叙述不正确的是( D)
A.一个C源的程序可由一个或多个函数组成
B.一个C源程序必须包含一个main函数
C.程序的基本组成单位是函数
D.在C语言中,注释说明只能位于是一条语句后面
30、C语言中。若有说明语句:char c=‘/72’,则变量c ( )
A.包含1个字符
B.包含2个字符
C.包含3个字符
D.说明不合法,c的值不确定
31、在c语言中,根据定义和数据的输入方式,输入语句的正确形式为( )
已有定义:float f1,f2;
数据的输入方式:4.52
3.5
A.scanf (“%f ,%f ”、&f 1,&f 2);
B.scanf (“%f %f ”,&f 1,&f 2);
C.scanf (“%3.2f ,%2.1f ”,&f 1,&f 2);
D. scanf("%3.2f%2.1f",&f1,&f2);
32、C语言中,已知int x=10,y=20, z=30:以下语句执行后x,y,z的值是( )
If(x>y)z=x; x=y ; y=z;
A. x=10,y=20,z=30
B. x=20,y=30,z=10
C. x=20,y=30,z=30
D. x=20,y=30,z=20
33、下面C语言程序的运行结果是( )
#include<stdio.h>
Main(){
int x,i;
for(i=1;i<=100:i++){
x=i:
if(x%2==0)
if(x%3==0)
if(x%7==0)
printf(“%d”,x);
}
}
A.3981
B.4284
C.2668
D.2870
34、判断char型变量c1是否为小写字母的正确表达方式( )
A.(’a’>=c1)|| (‘z’<=c1)
B.(c1>=’a’)&&(c1<=’z’)
C.(c1>=a)&&(c1<=z)
D.’a’<=c1<=’z’
35、C语言中,若有说明:int a[10];则对a数组元素的正确引用是( )
A.a[10]
B.a[3.5]
C.a(5)
D.a[10-10]
36、C语言中,运行以下程序
main(){ int x; scanf(“%d”,&x); if(x>60) printf(“%d”,x); if(x>40) printf(“%d”,x); if(x>30) printf(“%d”,x); } |
若从键盘输入58,则输出结果是( )
A)585858 B)5858 C)58 D)报错
37、C语言中,以下程序段的输出结果是( )
int a=100,x=10,y=20,ok1=5,ok2=0; if(x<y) if(y!=0) if(!ok1) a=1; else if(ok2) a=0; a= -1; printf(“%d/n”,a); |
A) 1 B) -1 C) 0 D)值不确定
38、C语言中,若定义-int m=7,n=12;
则能得到值为3的表达式是( )。 (选择一项,1。5分)
A n%=(m%=5)
B n%=(m-m%5)
C n%= m-m%=5
D (n%=m)-(m%=5)
39、C语言中,s1和s2已正确定义并分别指向两个字符串。若要求:当s1所指的字符串大于s2所指的字符串时,执行语句S;则下列先项中,正确的是( )。(选择一项,2分)
A if(s1>s2)S;
B if(strcmp(s1,s2))S;
C if(strcmp( s2,s1)>0)S;
D if(strcmp(s2,s1))S;
40、C语言中,合法的数组定义是( )。(选择一项,1.5分)
A int a[]=“tring”;
B int a[5]; a[5]={0,1,2,3,4};
C char a=“tring”;
D char a[]={0,1,2,3,4};
41、在C语言中,某程序员在一个show函数中定义了一个静态局部变量i,下列关于该静态变量的说法不正确的是( )。(选择一项,2分)
Void show(){
Static int I;
Printf(“%d,i++);
}
A 该变量的生存期为整个程序
B 该变量的作用域只能在定义该变量的show函数内使用
C 该变量由于未赋值,其值是不定的
D 如果给该变量赋值为1,每次调用show函数时,输出的结果都是1
42、在C语言中,以下程序执行后的输结果是( )。(选择一项,2分)
Main(){
Int x[8]={8,7,6,5,4,3},*s;
S=x+3;
Printf(“%d/n”,s[2]);
}
A 随机值
B 3
C 4
D 5
43、C语言中,设有枚举类型定义:
enum{sun,mon,tue,wed,thu,fri,sat}day;
day=wed;
现在要输出字符串wed,则下列语句中错误的是( )。(选择一项,2分)
A printf(“%s/n”,day);
B if(day= =wed)printf(“wed”);
C if(day= =3)printf(“wed”);
D switch(day){
Case sun:printf(“sun”);break;
Case wed:printf(“wed”);break;
Case sat:printf(“sat”);break;
44、在C语言中,设x和y均为ing型变量,则执行下面的循环后,y的值为()。
for(y=1,x=1;y<=50;y++){
if(x==10)
break;
if(x%2==1)
{
x+=5;
continue;
}
x-=3;
}
A8
B4
C2
D6
45、C语言中,若有定义:char a;int b;float c;double d;则表达式a*b+d-c值的类型为()
A float
B double
C char
D int
46、根据C语言标识符的命名规则,以下哪个标识符是合法的()
A 2xy
B a*b
C %num
D _one
47、有如下C语言程序:
Main(){
Int x=1,a=0,b=0;
Switch(x){
Case0:b++
Case1:a++
Case2:a++;b++;
}
Printf(“a=%d=%d/n”,a,b);
}
该程序的输出结果是()
A a=1,b=1
B a=2,b=1
Ca=1,b=0
Da=2,b=2
48、下列语句中,可以;输出26个大写英文字母的是()
A for(a`A`;a<=`Z`; printf (“%c,a++))
B for(a=`A`;a<=`Z`;a++)printf(“%c”,a++);
C for(a=`A`;a<=`Z`; printf(“%c”,a++));
D for(a=`A`;a<=`Z`;++a)printf(“%c,++a);
49、以下C语言程序中,WHILERF循环的循环 次数是()
#inclde<stdio.h>
Main(){
int i=0;
while(i<10){
if(i<1)continue;
if(i=5)break;
i++;
}
……
}
A 死循环
B 1
C 6
D 10
50、C语言中,下面四个选项中,均是C语言合法标志的选项是( )。
A)3B sizeof DO B)Key cl_c2 _FOR
C)425 T3-al $IF D)void AL 5B
51、下面( )是合法的C语言赋值语句i。
A)int A,B;A=5==B B) int A,B A=5 B=5
C) INT A=5;B=5 D) int A,B;A=B=5;
52、C语言中,设int i;char c;float f;
则以下表达式中结果为整数的是()。
A)i+f B)i*c C)c+f D)i+c+f
53、C语言中,定义数组int a[100]; 则在下列给出的数组元素中,非法的是( )。
Aa[0] B)a[1] C)a[99] D)[100]
54、执行下面程序:在C语言中执行后的输出结果是( )
Main() { int i; for(i=0;i<3;i++) switch(i) { case 1;printf(“%d”,i); case 2;printf(“%d”;i); default:printf(“%d”,i); { { |
A)011122 B)012 C)012020 D)120
55、下面程序ide输出结果是( )
Mail( ){ Int a[]{1,2,3,4,5,6,7,8,9,0,} int *p=a; printf(“%d/n”,*p+9); { |
A)0 B)1 C9 D)10
56、C 语言中,设有如下说明,则下面叙述中正确的是( )
struct ET{ long a; int b; char c[2]; }ones; |
A) 以上的说明形式非法 B)ones 是一个结构体类型
C)ET是一个结构体类型 D)ones 是一个外部结构变量
57、当调用函数时,实参是1个数组名,则函数传达的是( )
A 数组的长度
B 数组的首地址
C 数组每1个元素的地址
D 数组每个元素中的值
58、C语言可执行程序的开始执行点是( )
A 程序中的第1条可执行语言
B 程序中的第1个函数
C 程序中的main()函数
D 包含文件中的第1个函数