景德镇陶瓷学院期末考试C语言选择题.docx
《景德镇陶瓷学院期末考试C语言选择题.docx》由会员分享,可在线阅读,更多相关《景德镇陶瓷学院期末考试C语言选择题.docx(20页珍藏版)》请在冰豆网上搜索。
![景德镇陶瓷学院期末考试C语言选择题.docx](https://file1.bdocx.com/fileroot1/2023-1/22/61b0e1a9-dc1a-4acd-9094-c60331d50d1d/61b0e1a9-dc1a-4acd-9094-c60331d50d1d1.gif)
景德镇陶瓷学院期末考试C语言选择题
1、以下叙述中正确的是
A)C程序中的注释只能出现在程序的开始位置和语句的后面
B)C程序书写格式严格,要求一行内只能写一个语句
C)C程序书写格式自由,一个语句可以写在多行上
D)用C语言编写的程序只能放在一个程序文件中
2、以下叙述中正确的是..
A)C程序的基本组成单位是语句
B)C程序中的每一行只能写一条语句
C)简单C语句必须以分号结束
D)C语句必须在一行内写完
3、计算机能直接执行的程序是.......................................()
A)源程序 B)目标程序
C)汇编程序 D)可执行程序
4、以下C语言用户标识符中,不合法的是..................................()
A)_1 B)AaBc
C)a_bD)a-b
5.以下选项中不合法的标识符是........................................()
A)print B)FOR C)&a D)_00
6、以下选项中合法的标识符是..........................()
A)1_1B)1-1
C)_11D)1__
7以下选项中,能用作数据常量的是.................................()
A)o115B)0118C)1.5e1.5D)115L
8.以下选项中不能作为C语言合法常量的是....................................()
A)'cd' B)0.1e+6 C)"\a" D)'\011'
9.C源程序中不能表示的数制是.....................................................()
A)二进制 B)八进制
C)十进制 D)十六进制
10.以下选项中正确的定义语句是...............................................()
A)double a;b; B)double a=b=7;C)double a=7,b=7;D)double,a,b;
11.以下不能正确表示代数式2ab/cd的C语言表达式是..............................()
A)2*a*b/c/d B)a*b/c/d*2 C)a/c/d*b*2 D)2*a*b/c*d
12.设有定义:
intx=2;,以下表达式中,值不为6的是.............................()
A)x*=x+1B)x++,2*xC)x*=(1+x)D)2*x,x+=2
13、有以下程序,其中k的初值为八进制数
#include
main()
{intk=011;
printf("%d\n",k++);}
程序运行后的输出结果是............................()
A)12 B)11C)10 D)9
14.设变量a和b已正确定义并赋初值。
请写出a-=a+b等价的赋值表达式【】....................a=-b
15.若有表达式(w)?
(--x):
(++y),则其中与w等价的表达式是.................()
A)w==1 B)w==0 C)w!
=1 D)w!
=0
16.表达式(int)((double)(5/2)+2.5)的值是【】
17、若有定义:
doublea=22;inti=0,k=18;,则不符合C语言规定的赋值语句是........................()
A)a=a++,i++; B)i=(a+k)<=(i+k); C)i=a%11;D)i=!
a;
18.若函数中有定义语句:
intk;,则...................................()
A)系统将自动给k赋初值0B)这时k中的值无定义
C)系统将自动给k赋初值-1D)这时k中无任何值
19.程序段:
intx=12;doubley=3.141593;printf("%d%8.6f",x,y);的输出结果是
A)123.141593B)123.141593C)12,3.141593D)123.1415930
20.若整形变量a和b中的值分别为7和9,要求按以下格式输出a和b的值:
a=7b=9请完成输出语句:
printf("【7】",a,b);a=%d\nb=%d\n
21、有以下程序
#include
main()
{chara,b,c,d;
scanf(“%c%c”,&a,&b);
c=getchar();d=getchar();
printf(“%c%c%c%c\n”,a,b,c,d);
}
当执行程序时,按下列方式输入数据(从第1列开始,代表回车,注意:
回车也是一个字符)
12
34
则输出结果是..................................................()
A)1234 B)12
C)123D)1234
22.若变量已正确定义为int型,要通过语句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<回车>
23.有以下程序
#include
main()
{ int a1,a2; char c1,c2;
scanf("%d%c%d%c",&a1,&c1,&a2,&c2);
printf("%d,%c,%d,%c",a1,c1,a2,c2);
}
若通过键盘输入,使得a1的值为12,a2的值为34,c1的值为字符a,c2的值为字符b,
程序输出结果是:
12,a,34,b则正确的输入格式是(以下_代表空格,代表回车)......()
A)12a34bB)12_a_34_bC)12,a,34,bD)12_a34_b
24、若a是数值类型,则逻辑表达式(a==1)||(a!
=1)的值是..........()
A)1 B)0 C)2D)不知道a的值,不能确定
25、有如下嵌套的if语句
if(a
if(a elsek=c;
else
if(b elsek=c;
以下选项中与上述if语句等价的语句是.............................()
A)k=(a<b)?
a:
b;k=(b<c)?
b:
c;
B)k=(a<b)?
((b<c)?
a:
b):
((b>c)?
b:
c);
C)k=(a<b)?
((a<c)?
a:
c):
((b<c)?
b:
c);
D)k=(a<b)?
a:
b;k=(a<c)?
a:
c;
26、以下选项中与if(a==1)a=b;elsea++;语句功能不同的switch语句是....()
A)switch(a)
{case1:
a=b;break;
default:
a++;
}
B)switch(a==1)
{case0:
a=b;break;
case1:
a++;
}
C)switch(a)
{default:
a++;break;
case1:
a=b;
}
D)switch(a==1)
{case1:
a=b;break;
case0:
a++;}
27.以下是if语句的基本形式:
if(表达式) 语句
其中"表达式".............................()
A)必须是逻辑表达式B)必须是关系表达式C)必须是逻辑表达式或关系表达式D)可以是任意合法的表达式
28.有以下程序
#include
main()
{ int x;
scanf("%d",&x);
if(x<=3) ; else
if(x!
=10) printf("%d\n",x);
}
28.程序运行时,输入的值在哪个范围才会有输出结果.......................()
A)不等于10的整数B)大于3且不等于10的整数
C)大于3或等于10的整数D)小于3的整数
29.有以下程序
#include
main()
{ int a=1,b=2,c=3,d=0;
if (a==1 && b++==2)
if (b!
=2||c--!
=3)
printf("%d,%d,%d\n",a,b,c);
else printf("%d,%d,%d\n",a,b,c);
else printf("%d,%d,%d\n",a,b,c);}
程序运行后输出结果是..........................................()
A)1,2,3B)1,3,2
C)1,3,3D)3,2,1
30..有以下程序
#include
main()
{ char c1,c2;
scanf("%c",&c1);
while(c1<65||c1>90) scanf("%c",&c1);
c2=c1+32;
printf("%c,%c\n",c1,c2);
}
程序运行输入65回车后,能否输出结果,结束运行(请回答能或不能)【不能】
31.有以下程序
#include
main()
{intn=2,k=0;
while(k++&&n++>2);
printf(“%d%d\n”,k,n);
}
程序运行后的输出结果是.()
A)02B)13C)57D)12
32.以下程序运行后的输出结果是5
#include
main()
{inta=1,b=7;
do{
b=b/2;a+=b;
}while(b>1);
printf(“%d\n”,a);}
33.有以下程序
#include(stdio.h)
main()
{inta[5]={1,2,3,4,5},b[5]={0,2,1,3,0},i,s=0;
for(i=0;i<5;i++)s=s+a[b[i]]);
printf("%d\n",s);
}
程序运行后的输出结果是 .()
A)6B)10
C)11D)15
34.设变量已正确定义,以下不能统计出一行中输入字符个数(不包含回车符)的程序段是 .()
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++);
35.有以下程序
#include(stdio.h>
main()
{inta=1;b=2;
for(;a<8;a++){b+=a;a+=2;}
printf("%d,%d\n",a,b);
}
程序运行后的输出结果是.()
A)9,18 B)8,11 C)7,11 D)10,14
36.以下程序段中的变量已正确定义
for(i=0;i<4;i++,j++)
for(k=1;k<3;k++); printf("*");
程序段的输出结果是.()
A)********B)****C)**D)*
37.有以下程序
#include<stdio.h>
main()
{inti,j,m=1;
for(i=1;i<3;i++)
{for(j=3;j>0;j--)
{if(i*j)>3)break;
m*=i*j;
}
}
printf("m=%d\n",m);
}
程序运行后的输出结果是 .()
A)m=6 B)m=2 C)m=4 D)m=5
38.有以下程序
#include
main()
{intb[3][3]={0,1,2,0,1,2,0,1,2},i,j,t=1;
for(i=0;i<3;i++)
for(j=i;j<=i;j++)t+=b[i][b[j][i]];
printf("%d\n",t);
}
程序运行后的输出结果是.()
A)1 B)3 C)4 D)9
39.有以下程序
#include
int f(int x,int y)
{ return ((y-x)*x);}
main()
{ int a=3,b=4,c=5,d;
d=f(f(a,b),f(a,c));
printf("%d\n",d);
}
程序运行后的输出结果是.()
A)10B)9C)8D)7
40.有以下程序
#include
int fun(int x,int y)
{ if(x==y) return (x);
else return((x+y)/2);
}
main()
{ int a=4,b=5,c=6;
printf("%d\n",fun(2*a,fun(b,c)));}
程序运行后的输出结果是.()
A)3B)6C)8D)12
41.设函数中有整型变量n,为保证其在未赋初值的情况下初值为0,应该选择的存储类别是.()
A)autoB)registerC)staticD)auto或register
42有以下程序
#include
voidfun(intp)
{intd=2;
p=d++;printf(“%d”,p);}
main()
{inta=1;
fun(a);printf(“%d\n”,a);}
程序运行后的输出结果是.()
A)32B)12C)21D)22
43.有以下程序
#include
intf(intn);
main()
{inta=3,s;
s=f(a);s=s+f(a);printf(“%d\n”,s);
}
intf(intn)
{staticinta=1;
n+=a++;
returnn;
}
程序运行以后的输出结果是.()
A)7B)8C)9D)10
44.有以下程序
#include
intfun()
{staticintx=1;
x*=2;returnx;
}
main()
{inti,s=1,
for(i=1;i<=2;i++)s=fun();
printf("%d\n",s);
}
程序运行后的输出结果是 .()
A)0 B)1 C)4 D)8
45.有以下程序
#include
#definef(x)x*x*x
main()
{inta=3,s,t;
s=f(a+1);t=f((a+1));
printf(“%d,%d\n’,s,t);}
程序运行后的输出结果是.()
A)10,64B)10,10C)64,10D)64,64
46.有以下程序
#include
#define PT 3.5 ;
#define S(x) PT*x*x ;
main()
{ int a=1,b=2 ; printf("%4.1f\n",S(a+b));}
程序运行后的输出结果是.()
A)14.0B)31.5C)7.5D)程序有错无输出结果
47.有以下程序
#include
#defineSUB(a)(a)-(a)
main()
{inta=2,b=3,c=5,d;
d=SUB(a+b)*c;
printf("%d\n",d);
}
程序运行后的输出结果是 .()
A)0 B)-12 C)-20D)10
48.以下叙述正确的是 .()
A)C语言程序是由过程和函数组成的 B)C语言函数可以嵌套调用,例如:
fun(fun(x))
C)C语言函数不可以单独编译 D)C语言中除了main函数,其他函数不可作为单独文件形式存在
49.若有定义语句:
intm[]={5,4,3,2,1},i=4;,
则下面对m数组元素的引用错误的是.()
A)m[--i] B)m[2*2] C)m[m[0]] D)m[m[i]]
50.有以下程序
#include
void fun(int a,int b)
{ int t;
t=a;a=b;b=t;
}
main()
{ int c[10]={1,2,3,4,5,6,7,8,9,0},i;
for(i=0;i<10;i+=2) fun(c[i],c[i+1]);
for(i=0;i<10;i++) printf("%d,",c[i]);
printf("\n");
}
程序的运行结果是.()
A)1,2,3,4,5,6,7,8,9,0, B)2,1,4,3,6,5,8,7,0,9,
C)0,9,8,7,6,5,4,3,2,1, D)0,1,2,3,4,5,6,7,8,9,
51.有以下程序
void fun(int a[], int n)
{ int i,t;
for(i=0;i{t=a[i];a[i]=a[n-1-i]; a[n-1-i]=t; }
}
main()
{ int k[10]={1,2,3,4,5,6,7,8,9,10},i;
fun(k,5);
for(i=2;i<8;i++) printf("%d",k[i]);
printf("\n");
}
程序的运行结果是 .()
A)345678 B)876543 C)1098765 D)321678
52.下列选项中,能正确定义数组的语句是 .()
A)intnum[0..2008];B)intnum[];
C)intN=2008;
intnum[N];
D)#defineN2008
intnum[N];
53.有以下程序
main()
{inta[]={2,3,5,4},i;
for(i=0;i<4;i++)
switch(i%2)
{case0:
switch(a[i]%2)
{case0:
a[i]++;break;
case1:
a[i]--;
}break;
case1:
a[i]=0;
}
for(i=0;i<4;i++)printf(“%d”,a[i]);printf(“\n”);
}
程序运行后的结果是:
.()
A)3344B)2050C)3040D)0304
54.有以下程序
#define N 4
void fun(int a[][N],int b[])
{ int i;
for(i=0;i }
main()
{ int x[][N]={{1,2,3},{4},{5,6,7,8},{9,10}},y[N],i;
fun(x,y);
for(i=0;i printf("\n");}
程序的运行结果是 .()
A)1,2,3,4, B)1,0,7,0, C)1,4,5,9, D)3,4,8,10,
5.以下函数findmax拟实现在数组中查找最大值并作为函数值返回,但程序中有错导致不能实现预定功能
#defineMIN-2147483647
intfindmax(intx[],intn)
{inti,max;
for(i=0;i{max=MIN;
if(maxreturnmax;
}
造成错误的原因是.()
A)定义语句inti,max;中max未赋初值B)赋值语句max=MIN;中,不应给max赋MIN值
C)语句if(maxD)赋值语句max=MIN;放错了位置
56.有以下程序
#include
main()
{chars[]={“012xy”};inti,n=0;
for(i=0;s[i]!
=0;i++)
if(s[i]>=’a’&&s[i]<=’z’)n++;
printf(“%d\n”,n);
}
程序运行后的输出结果是.()
A)0B)2C)3D)5
57.若有定义语句:
char s[10]="1234567\0\0";,则strlen(s)的值是A
A)7 B)8 C)9 D)10
58.有以下程序
#include
main()
{chara[10]=”abcd”;
printf(“%d,%d\n”,strlen(a),sizeof(a));
}
程序运行后的输出结果是.()
A)7,4B)4,10C)8,8D)10,10
59.设有定义:
structcomplex
{intreal,unreal;}data1={1,8},data2;
则以下赋值语句中错误的是 .()
A)data2=data1;B)data2=(2,6); C)data2.real=data1.real; D)data2.real=data1.unreal;
60.有以下定义和语句
struct