C语言试题库含答案.docx
《C语言试题库含答案.docx》由会员分享,可在线阅读,更多相关《C语言试题库含答案.docx(251页珍藏版)》请在冰豆网上搜索。
C语言试题库含答案
一、单项选择题(每小题2分)
【1】设字符型变量ch的值为'A',整型变量m的值为'1',假定执行putchar(m);putchar('');putchar(ch);后,则输出结果是。
A、A1
B、lA
C、Al
D、1A
标准答案:
D
【2】有如下函数调用语句
fuc(rec1,rec2+rec3,(rec4,rec5));
该函数调用语句中,含有的实参个数是。
A、3
B、4
C、5
D、有语法错
标准答案:
A
【3】有以下函数定义:
voidfun(intn,doublex){}
若以下选项中的变量都已经正确定义并赋值,则对函数fun的正确调用语句是。
A、fun(inty,doublem);
B、k=fun(10,12.5);
C、fun(x,n);
D、voidfun(n,x);
标准答案:
C
【5】设有以下程序片段,请问执行后的输出结果是
inti=010,j=10,k=0xl0;printf("%d,%d,%d",k,j,i);
A、16,10,8
B、81016
C、10,10,10
D、8,10,16
标准答案:
A
【9】有如下程序段:
charstr[14]={"Iam"};
strcat(str,"sad!
");
scanf("%s",str);
printf("%s",str);
当输入为happy!
时,输出的结果是()。
A、Iamsad!
B、happy!
C、Iamhappy!
D、happy!
ad!
标准答案:
B
【11】以下if语句中格式正确的是
A、if(a>b)b++elsea++;
B、if(a>b){b++;printf("%d",b);}
else{a++;printf("%d",a);}
C、if(a>b){b++;printf("%d",b)}
else{a++;printf("%d",a);}
D、if(a>b)b++;printf("%d",b);
elseprintf("%d",a);
标准答案:
B
【1】设有整型变量m值为8,下列赋值语句中,正确的是。
A、++m=6;
B、m=m++;
C、m+1=8;
D、m+1+=8;
标准答案:
B
【2】.有以下程序
#include
voidfun(int*a,inti,intj)
{
intt;
if(i{
t=a[i];a[i]=a[j];a[j]=t;
i++;j--;
fun(a,i,j);
}
}
voidmain()
{
intx[]={2,6,1,8},i;
fun(x,0,3);
for(i=0;i<4;i++)printf("%2d",x[i]);
}
程序运行后的输出结果是。
A、1268
B、8621
C、8162
D、8612
标准答案:
C
【3】关于C语言以下说法正确的是()。
A、只有当实参和与其对应的形参同名时才共占用存储单元
B、形参是虚拟的,不占用存储单元
C、实参和与其对应的形参各占用独立的存储单元
D、实参和与其对应的形参共占用一个存储单元
标准答案:
C
【4】根据下面的定义,能打印出字母“M”的语句是。
structperson
{charname[9];intage;};
structpersonclass[10]={"John",17,
"Paul",19,"Mary",18,"adam",16};
A、printf("%c\n",class[3].name);
B、printf("%c\n",class[3].name[l]);
C、Printf("%c\n",class[2].name[l]);
D、printf("%c\n",class[2].name[0]);
标准答案:
D
【5】设单精度变量f,g的值均为5.0,则下面的表达式中,使f为10.0的表达式是。
A、f+=g
B、f-=g+5
C、f*=g-5
D、f/=g*5
标准答案:
A
【6】下面程序的输出是
main()
{inta=-1,b=4,k;
k=(a++<=0)&&(!
(b--<=0));
printf("%d%d%d\n",k,a,b);}
A、003
B、012
C、103
D、112
标准答案:
C
【7】C语言中最基本的数据类型包括。
A、整型,实型,逻辑型
B、整型,实型,布尔型
C、整型,实型,字符型
D、整型,实型,指针型
标准答案:
C
【8】假定int类型变量占用两个字节,其有定义:
intx[10]={0,2,4};,则数组x在内存中所占字节数是。
A、3
B、6
C、10
D、20
标准答案:
D
【9】下面程序的输出结果是()。
#include
voidmain()
{
inti,j,k;
charstr[5];
for(i=0;i<5;i++)str[i]='A';
k=4;
for(i=0;ifor(j=0;jstr[j]=str[i]+32;
printf("%c\n",str[k]);
}
A、a
B、A
C、B
D、不确定的值
标准答案:
B
【10】有以下程序片段:
inta[12]={1,2,3,4,5,6,7,8,9,10,11,12},*p[3],i;
for(i=0;i<3;i++)
p[i]=&a[i*4];
printf(“%d”,*(p[2]+1));
则输出结果为
A、9
B、5
C、10
D、6
标准答案:
C
【11】设a,b,w为整型变量,ch为字符型变量,用if语句改写以下的程序段:
switch(ch)
{case'+':
w=a+b;break;
case'-':
w=a-b;break;
case'*':
w=a*b;break;
case'/':
w=a/b;break;}
在下列写法中,错误的是
A、if(ch=='+')w=a+b;
if(ch=='-')w=a-b;
if(ch=='*')w=a*b;
if(ch=='/')w=a/b;
B、B)if(ch=='*')w=a*b;
elseif(ch=='/')w=a/b;
if(ch=='+')w=a+b;
elseif(ch=='-')w=a-b;
C、if(ch=='+')w=a+b;
elseif(ch=='-')w=a-b;
if(ch=='*')w=a*b;
elsew=a/b;
D、D)if(ch=='+')w=a+b;
elseif(ch=='-')w=a-b;
if(ch=='*')w=a*b;
elseif(ch=='/')w=a/b;
标准答案:
C
【12】有以下程序:
#include.
main()
{intal=0,a2=0,a3=0;
charch;
while((ch=getchar())!
='\n')
switch(ch)
{case'A':
a1++;
case'B':
a2++;
default:
a3++;}
printf("%d,%d,%d",a1,a2,a3);}
现从键盘上输入AAAAABBBC<回车>,则程序执行后的输出结果是
A、5,8,9
B、5,3,1
C、5,3,9
D、5,8,1
标准答案:
A
【13】下面程序的输出是
main()
{inty=9;
for(;y>0;y--)
if(y%3==0)
{printf(“%d”,--y);continue;}}
A、741
B、852
C、963
D、875421
标准答案:
B
【14】下面程序的运行结果是
#include
main()
{inti=1;
do{i--;}while(i++);
printf("%d",i--);}
A、-1
B、0
C、1
D、陷入死循环
标准答案:
C
【15】以下对C语言描述中正确的是()。
A、C语言源程序中可以有重名的函数
B、C语言源程序中要求每行只能书写一条语句
C、C语言源程序中,注释可以出现在任何位置
D、最小的C源程序中没有任何内容
标准答案:
C
【2】返回值为void的函数,其含义是()。
A、调用函数之后,被调用的函数没有返回值
B、调用函数之后,被调用的函数不返回
C、调用函数之后,被调用的函数的返回值为任意的类型
D、以上三种说法都是错误的
标准答案:
A
【3】以下函数
fff(floatx)
{printf(“%d\n”,x*x);}
的类型是
A、与参数x的类型相同
B、void类型
C、int类型
D、无法确定
标准答案:
C
【4】有如下定义:
structdate{intyear,month,day;};
structworklist{charname[20];charsex;structdatebirthday;}personone;
对结构体变量personone的出生年份进行赋值时,下面正确的赋值语句是。
A、year=1968
B、birthday.year=1968
C、personone.birthday.year=1968
D、personone.year=1968
标准答案:
C
【5】设a,b和c都是int型变量,且a=3,b=4,c=5,则下面的表达式中,值为0的表达式是
A、'a'&&'b'
B、a<=b
C、a||b+c&&b-c
D、!
((a
c||1)
标准答案:
D
【6】字符串“\t\n\\\045\’”的长度为。
A、4
B、10
C、5
D、说明不合法
标准答案:
C
【7】sizeof(float)是()。
A、一种函数调用
B、—个单精度表达式
C、—个整型表达式
D、—个不合法的表达式
标准答案:
C
【8】以下程序的输出结果是。
#include
#include
voidmain()
{
charst[20]="hello\0\t\\";
printf("%d%d\n",strlen(st),sizeof(st));
}
A、99
B、520
C、1320
D、2020
标准答案:
B
【9】有以下程序
#include
voidmain()
{
charp[]={'a','b','c'},q[]="abc";
printf("%d%d\n",sizeof(p),sizeof(q));
}
程序运行后的输出结果是______。
A、44
B、33
C、34
D、43
标准答案:
C
【10】若有以下定义,则对数组元素地址的正确引用是。
inta[5]={1,2,3,4,5},*p,i;
i=3;p=a;
A、&p
B、a++
C、&(p+1)
D、&p[i]
标准答案:
D
【11】有以下程序:
#include
main()
{intx,y;printf("Enteraninteger(x):
");
scanf("%d",&x);
if(x++<0)y=-1;
elseif(x==0)y=0;elsey=1;printf("%d",y);}
现从键盘上输入-1,则程序的输出是。
A、-1
B、0
C、1
D、不确定的值
标准答案:
A
【12】已知a,b,c的值分别是1,2,3,则执行下列语句后a,b,c的值分别是
if(a++
elsea=b=c=0;
A、0,0,0
B、1,2,3
C、1,2,1
D、2,2,2
标准答案:
D
【13】请读程序:
#include
main()
{inta,b;
for(a=1,b=1;a<=100;a++)
{if(b>=20)break;
if(b%3==1){b+=3;continue;}
b=-5;}
printf(“%d\n”,a);}
上面程序的输出结果是
A、7
B、8
C、9
D、10
标准答案:
B
【14】有以下程序段:
inti,j;
for(i=0;i<5;++i)
for(j=i;j<5;++j)
printf(“*”);
则执行以上的程序片段后,输出‘*’个数是
A、15
B、10
C、25
D、20
标准答案:
A
【15】程序段的基本结构中,不包含()。
A、函数结构
B、循环结构
C、顺序结构
D、分支结构
标准答案:
A
【1】执行语句scanf("%d,%d",&m,&n);使m和n的值分别为1和2,正确输入是。
A、1
B、2
C、1,2
D、12
标准答案:
c
【3】若用数组名作为函数调用的实参,传递给形参的是()。
A、数组的首地址
B、数组第一个元素的值
C、数组中全部元素的值
D、数组元素的个数
标准答案:
A
【4】设有以下结构体定义:
structemproyer
{charname[8];intage;charsex;}staff;
则下面的叙述不正确的是
A、struct是结构体类型的关键字
B、structemproyer是用户定义的结构体类型
C、staff是用户定义的结构体类型名
D、nameage和sex都是结构体成员名
标准答案:
C
【6】表达式-l?
(10?
10:
1):
(0?
0:
-1)的值为
A、10
B、1
C、0
D、-1
标准答案:
A
【8】下面正确的数组定义语句是。
A、inty[1][4]={1,2,3,4,5};
B、floatx[3][]={{1},{2},{3}};
C、longs[2][3]={{1},{1,2},{1,2,3}};
D、doublet[][3]={0};
标准答案:
D
【10】下面程序的输出结果是
voidprtv(int*x)
{printf("%d\n",++*x);}
main()
{inta=25;prtv(&a);}
A、23
B、24
C、25
D、26
标准答案:
D
【11】设有如下程序:
#include
main()
{charch1,ch2;
scanf(“%c%c”,&ch1,&ch2);
if(ch1!
=’B’)
{switch(ch2)
{case’B’:
switch(ch1)
{case’A’:
printf("AB")
break;
case’B’:
printf("BB")
break;}
case‘A’:
switch(ch1)
{case’A’:
printf("AA")
break;
case’B’:
printf("BA");
break;
}}}}}
若执行是从键盘上输入的数据时AB,则输出是
A、AB
B、ABAA
C、BBBAABBBAABA
D、BBBA
标准答案:
B
【12】请读程序:
#include
main()
{intx=l,y=0,a=0,b=0;
switch(x)
{casel:
switch(y)
{case0:
a++;break;
case1:
b++;break;}
case2:
a++;b++;break;}
printf("a=%d,b=%d\n",a,b);}
上面程序的输出结果是
A、a=2,b=l
B、a=l,b=l
C、a=l,b=0
D、a=2,b=2
标准答案:
A
【13】有下面的程序:
main()
{inti,n,k;
n=15496;k=2;
for(i=1;in=n%10;
printf("%d",n);}
则执行后的输出结果是
A、9
B、6
C、2
D、1
标准答案:
B
【2】一个函数返回值的类型是由()。
A、return语句中的表达式类型决定
B、定义函数时所指定的函数类型决定
C、调用该函数的主调函数的类型决定
D、在调用函数时临时指定
标准答案:
B
【4】以下对结构体变量stul中成员age的非法引用是
structst
{intage;intnum;}stul,*p;
p=&stul;
A、stul.age
B、age
C、p→age
D、(*p).age
标准答案:
B
【5】设ch是char型变量,其值为'a',且有下面的表达式:
ch=(ch>='a'&&ch<='z')?
(ch-32):
ch
上面表达式的值是
A、'a'
B、'A'
C、'Z'
D、'z'
标准答案:
B
【6】以下运算符中,运算优先级最低的是。
A、->
B、++
C、*
D、=
标准答案:
D
【7】属于实型常量的是
A、E10
B、10
C、10L
D、1E10
标准答案:
D
【12】有以下程序:
#include
main()
{intx,y;printf("Enteraninteger(x):
");
scanf("%d",&x);
if(x++<0)y=-1;
elseif(x==0)y=0;elsey=1;printf("%d",y);}
现从键盘上输入-1,则程序的输出是。
A、-1
B、0
C、1
D、不确定的值
标准答案:
A
【14】有下列程序段:
charch;
ints=0;
for(ch=’A’;ch<’Z’;++ch)
if(ch%2==0)s++;
printf("%d",s);
则执行上述片段后,程序的输出结果是
A、13
B、12
C、26
D、25
标准答案:
A
【15】C语言程序的基本单位是什么是()。
A、程序行
B、语句
C、函数
D、字符
标准答案:
C
一、单项选择题(每小题2分)
【1】设字符型变量ch已有值,下列语句中错误的是。
A、scanf("%c%c",ch,ch);
B、{intch=6;printf("%d",ch);}
C、ch=5;
D、ch>48&&ch<0x3A;
标准答案:
A
【4】若有以下定义和语句:
structstudent
{intnum;intage;};
structstudentstu[3]={{l001,20},{1002,19},{1003,2l}};
main()
{structstudent*p;p=stu;
...}
则下列引用中不正确的是。
A、(p++)→num
B、p++
C、(*p).num
D、p=&stu.age
标准答案:
D
【5】若a是float型变量,则表达式a=l,a++,a+=a的值为。
A、2
B、4
C、2.0
D、4.0
标准答案:
D
【6】若希望当A的值为奇数时,表达式的值为“真”,A的值为偶数时,表达式的值为“假”,则以下不能满足要求的表达式是 。
A、A%2==1
B、!
(A%2==0)
C、!
(A%2)
D、A%2
标准答案:
C
【10】有以下程序,请问执行后的输出结果是。
#include
main()
{inta[]={1,2,3,4,5,6},*p;
p=a;*(p+3)+=2;
printf("%d,%d",*p,a[3]);}
A、1,4
B、0,4
C、1,6
D、0,6
标准答案:
C
【11】若要求表示a不等于0的关系,错误的表达式是
A、)a<>0
B、a!
=0
C、a
D、a<0||a>0
标准答案:
A
【13】下面的程序,描述正确的是
main()
{intx=3;
do
{printf(“%d\n”,x-=2);}
while(!
(--x));}
A、输出的是1
B、输出的是1和-2
C、输出的是3和0
D、是死循环
标准答案:
B
【15】C语言中主函数的个数是()
A、2个
B、1个
C、任意个
D、10个
标准答案:
B
【2】以下关于函数的叙述中正确的是______。
A、每个函数都可以被其它函数调用(包括main函数)
B、每个函数都可以被单独编译
C、每个函数都可以单独运行
D、在一个函数内部可以定义另一个函数
标准答案:
B
【3】若函数的形参为一维数组,则下列说法中正确的是()。
A、调用函数时的对应实参必为数组名
B、形参数组可以不指定大小
C、形参数组的元素个数必须等于实参数组的元素个数
D、形参数组的元素个数必须多于实参数组的元素个数
标准答案:
B
【7】C浯言中的构造类型包括。
A、数组型,结构体型,联合体型
B、结构体型,联合体型,指针型
C、结构体型,联合体型,枚举类型
D、数组型,结构体型,联合体型,指针型
标准答案:
A
【10】请读程序:
#include
#include
main()
{char*s1="AbCdEf",*s2="aBcDeF";s1++;s2++;
printf("%d\n",strcmp(s1,s2));}
上面程序的输出结果是
A、正数
B、负数
C、零
D、不确定的数
标准答案:
A
【12】若执行下面的程序时从键盘上输入10,则输出是
main()
{inta;scanf("%d",&a);
if(a++>10)
printf("%d\n",++a);
elseprintf("%d\n",a--);}
A、12
B、11
C、10
D、9
标准答案:
B
【13】下面的程序段不能实现求阶乘8!
(8!
=1*2*3*4*5*6*7*8,结果存放在p中)的是
A、p=1;
for(i=1;i<9;i++)
p=p*i;
B、p=2;
for(i=1;i<9;i++)
p=p*i;
C、p=1;i=1;
while(i<9)
p=p*i++;
D、p=1;i=8;
do
{p=p*i--;}
while(i>1);
标准答案:
B
【14】下列循环中哪一个不是无限循环
A、for(i=1;;i++)
printf(“%d”,i);
B、i=1;while(i--)
{printf(“%d”,i++);}
C、i=1
do
{printf(“%d”,i);
i++;}while(--i);
D、for(i=0;i;i++)
printf(“%d”,i);
标准答案:
D
【3】若函数的形参为一维数组,则下列说法中正确的是()。
A、调用函数时