C语言程序设计复习题docx.docx
- 文档编号:8902959
- 上传时间:2023-02-02
- 格式:DOCX
- 页数:36
- 大小:89.55KB
C语言程序设计复习题docx.docx
《C语言程序设计复习题docx.docx》由会员分享,可在线阅读,更多相关《C语言程序设计复习题docx.docx(36页珍藏版)》请在冰豆网上搜索。
C语言程序设计复习题docx
C语言程序设计复习题
-、单选题:
1、能正确表示逻辑关系上二10或&W0”的C语言表达式是(D)
A)a>=10ora<=0B)a>=0|a<=10
C)a>=10&&a<=0D)a>=10||a<=0
2、C语言中运算对象必须是整型的运算符是(A
A)%B)/C)=D)<
3、若已定义x和y为double类型,则表达式x=l,y=x+3/2的值是(C)
A)1B)2C)2.0D)2.5
4、设有说明语句:
chara」\72‘;则变量a(A)
A)包含1个字符B)包含2个字符
C)包含3个字符D)说明不合法
5、C语言程序由什么组成?
(C)
C)函数D)
A)子程序B)主程序和子程序
过程
6、下列运算符中,优先级最咼的是(A)。
7、以下选项中不正确的整型常量是(D)。
A)12B)0x6a
C)135L
D)089
8、表达式(C)的值是0。
A)3%5B)3/5.0
C)3/5
D)3<5
A)->
B)卄
C)&&
D)二
9、设变量定义为“ints[]=〃hello\nworld\rT;”,则数组s中有(B)个元素。
A)12B)13C)14D)15
10、下列结构体变量的定义那个是正确的?
(D)
A)
B)struetsname
{char:
int:
number;
}student;
D)struetsname
{charname[8];
structsname
{name[8]:
char;
name(8);
number:
int;
}student;
C)structsname
{charname(8);
intnuHiber;
intnumber;
}student;
}student;
11、以下叙述中正确的是(A)
A)C程序中注释部分可以出现在程序中任意合适的地方
B)花括号〃{〃和〃}〃只能作为函数体的定界符
C)构成C程序的基本单位是函数,所有函数名都可以由用户命名
D)分号是C语句之间的分隔符,不是语句的一部分
12、对于一个正常运行的C程序,以下叙述中正确的是(A)
A)程序的执行总是从main函数开始,在main函数结束
B)程序的执行总是从程序的第一个函数开始,在main函数结束
C)程序的执行总是从main函数开始,在程序的最后一个函数结束
D)程序的执行总是从程序中的第一个函数开始,在程序的最后一个函数结束
13、以下不合法的用户标识符是(C)
A)j2_KEYB)DoubleC)4dD)_8_
14、若变量x,y已被正确定义并赋值,以下符合C语言语法的表达式是(A)
double(x)/10
15、以下能正确定义字符串的语句是
(D)
A)charstr[]二{'\064‘};
B)char
str二〃\x43〃;
C)charstr=,';
D)char
str[]=〃\0〃;
16、以下数组定义中错误的是(B)
A)intx[][3]={0};
B)int
x[2][3]={{1,2},{3,4},{5,6};
c)intx[][3]={{1,2,3},{4,
5,6}};
D)int
x[2][3]={1,2,3,4,5,6};
17、若有定义intx,y;并已正确给变量赋值,则以下选项中与表达式(x-y)?
(x++):
(y++)中的条件表达式(x-y)等价的是(C)
A)(x~y>0)B)(x-y<0)C)(x~y<0||x~y>0)
D)(x-y==0)
18、有以下程序
#definef(x)(x*x)
main()
{intil,i2;
il=f(8)/f(4);i2=f(4+4)/f(2+2);
printf(/z%d,%d\n〃,il,i2);
程序运行后的输出结果是(
19、有以下函数:
intfun(char*s){char*t=s;
while(*t++);
return(t-s);}
该函数的功能是(C)
内存字节个数
串中
A)1-0’
B)1-\0‘
20、以下选项中值为1的表达式是
21>C语言程序的二种基本结构是(A)
B)递归结构,循
A)顺序结构,选择结构,循环结构环结构,转移结构
C)嵌套结构,递归结构,顺序结构D)循环结构,转
移结构,顺序结构
22、C语言中函数返回值的类型是由(D)决定。
A)return语句中的表达式类型B)调用函数的主调函
数类型
C)调用函数时临时D)定义函数时所指定
的函数类型
23>C语言中数组名作为参数传递给函数,作为实在参数的数组名被处理为(D)
A)该数组的长度。
B)该数组的元素个数。
C)该数组中各元素的值。
D)该数组的首地址。
24、C语言中数组下标的下限是(B)。
A)1B)0C)视具体情况D)无固定下限
25、表达式:
10!
=9的值是(D)
A)TrueB)FalseC)0D)1
26、表示关系x<=y<=z的C语言表达式为(A)
A)(X<=Y)&&(Y<=Z)
C)(X〈二Y〈二Z)
B)(X<=Y)AND(Y<=Z)
D)(X〈二Y)&(Y〈二Z)
27、假定int类型变量占用两个字节,其有定义:
intx[10]={0,2,4};,则数组x在内存中所占字节数是(D)
A)3B)6C)10D)20
28、C语言中最简单的基本数据类型包括(B)
A)整型、实型、逻辑型B)整型、实型、字符型
C)整型、字符型、逻辑型D)整型、实型、逻辑型、
字符型
29、若变量已正确说明为int类型,要给a,b,c输入数据,以下正确的输入语句是(D)
A)read(a,b,c);B)
scanf(〃%d%d%d〃,a,b,c);
C)scanf(〃%D%D%D〃,&a,%b,%c);D)
scanf(〃%d%d%d〃,&a,&b,&c);
30、表达式(D)是满足:
当c的值为1、3、5三个数时值为“真”,否则值为“假”的表达式。
A)(c=l)||(c=3)||(c=5)B)
(c!
=l)&&(c!
=3)&&(c!
=5)
C)
(c=l)&&(c=3)&&(c二5)
D)
(c==l)(c==3)(c==5)
31、不合法的八进制数是(B)
A)0
B)028C)077
D)01
32、设int
c二5禾口inta,8=2+(c+二c++),
则a的值为(B)
A)12
B)13C)14
D)15
33、在C语言中,wtdle语句中的条件为(A)时,结束该循环。
A)0B)1C)trueD)非0
34、若要求在if后一对圆括号中表示a不等于0的关系,则能正确表示这一关系的表达式为(B)
A)a<>0B)!
aC)a二0D)a
35、若a为int类型,且其值为3,则执行完表达式a+二a-=a*a后,a的值是(C)
A)-3B)9C)-12D)6
36、若int类型占两个字节,则以下语句输出为(D)
intk=~l;printf(〃%d,%u\n〃,k,k);
-1,65535
37、若有定义:
inta=8,b=5,c;,执行语句c=a/b+O.4;后,c的值为(B)
A)1.4B)1C)2.0D)2
38、若有以下程序段:
intcl=l,c2=2,c3;
c3二1.0/c2*cl;
则执行后,c3中的值是(A)
A)0B)0.5C)1D)2
39>若有以下定义:
chara;intb;floatc;doubled;则表达式a*b+d-c值的类型为(D)
A)floatB)intC)charD)double
40、若有以下定义和语句:
charcl」b‘,c2二'e;
printf(〃%d,%c\n〃,c2~cl,c2-a'+〃A〃);
则输出结果是(B)
A)2,M
B)3,E
C)2,E
D)输出项与对应的格式控制不一致,输出结果不确定
41、若有以下函数调用语句:
fun(a+b,(x,y),fun(n+k,d,(a,b)));
在此函数调用语句中实参的个数是(A)
A)3B)4C)5D)6
42、若执行下面的程序时:
main()
{
inta,b,s;
scanf(〃%d%d〃,&a,&b);
s=a;
if(a==3)s+=a*b;
printf(〃%d\n〃,s);
}
从键盘上输入3和4,则输出是(B)
A)14B)15C)16D)17
43、若k为整型,以下while循环了(C)次。
intk=10;
while(k=0)
k=k-l;
}
A)10次B)无限循环C)一次不执行D)
执行一次
44、若执行下面的程序时:
main()
{
intx;
scanf(〃%d〃,&x);
if(x++>5)printf(〃%d\n〃,x);elseprintf(z/%d\n〃,x--);
}
从键盘上输入5,则输出是(B)
A)7B)6C)5D)4
45、设a,b和c都是int型变量,且a=3,b=4,c=5,则下列表达式中,值为0的表达式是(D)
A)'a'b‘B)a<=bC)a||b+c&&b-c
D)!
((a
C|11)
46、设x、y、z和k都是int型变量,则执行表达式:
x=(y=4,z=16,k=32)后,x的值为(C)
A)4B)16C)32D)52
47、设x和y均为int型变量,则以下语句:
x+=y;
y二x-y;
x_二y;
的功能是(D)
A)把x和y按从大到小排列B)把x和y按从小到大
排列
C)无确定结果D)交换x和y中的值
48>设x=3,y=-4,z二6,则表达式:
!
(x>y)+(y!
=z)||(x+y)&&(y-z)
的结果是(B)
A)0B)1
C)-1
D)6
49、设有intx二11;则表达式(x++*1/3)的值是(A)
A)3B)4C)11D)12
50、设有如下定义:
char*aa[2]={"abcd","ABCD"};
则以下说法中正确的是(D)
A)aa数组元素的值分别是〃abcd〃和ABCD〃
B)aa是指针变量,它指向含有两个数组元素的字符型一维数组
C)aa数组的两个元素分别存放的是含有4个字符的一维字符数组的首地址
D)aa数组的两个元素中各自存放了字符'a'和'A'的地址
51、设有如下定义:
intx=10,y=3,z;则语句printf(,,%d\n,/,z=(x%y,x/y));的输出结果是(D)
A)1B)0C)4D)3
52、设有数组定义:
chararray[]="China";则数组array所占的空间为(C)
A)4个字节B)5个字节C)6个字节D)7个字节
53、设有说明语句:
chara='\72';则变量a中(A)
A)包含1个字符B)包含2个字符C)包含3个字符D)说明不合法
那么语句
54>设有以下语句:
intx二3,y二2,z二1;printf("%d",x|y旷z)的执行结果是(C)。
A)1B)2C)3D)0
55、下列标识符中不合法的是(D)
56、下列不正确的转义字符是(C)
57、请阅读程序:
main()
{
inta=l,b=2;
printf(〃%d\n〃,a=a+l,a+6,b+2);
}
则上面程序的输出结果是(B)
A)1B)2C)3D)4
58、请阅读程序:
inti=0,j=0,a=6;if((++i>0)||(++j>0))a++;
printf(〃i=%d,j=%d,a二d%\n〃,i,j,a);
则上面程序的输出结果是(B)
A)i=0,j=0,a=6B)i=l,j=0,a=7
C)i=l,j=l,a=6D)i=l,j=l,a=7
59、下列描述中不正确的是(C)
A)字符型数组中可以存放字符串
B)可以对字符型数组进行整体输入、输出
C)可以对整型数组进行整体输入、输出
D)不能在赋值语句中通过赋值运算符〃二〃对字符型数组进行整体赋值
60、下列说法中正确的是(B)
A)在switch语句中一定要使用break语句
B)在switch语句中不一定要使用break语句
C)break语句是switch语句的一部分
D)break只能用于switch语句中
61、下面的D0循环中,一共循环(D)次。
M二5;
N二1;
DOWHiLEN<=M
N二N+]
A)1B)6C)4D)5
62、请阅读程序:
#include
・・・・#include
main()
{
inta二l,b二4,c二2;
floatx=5.5,y=9・0,z;
z=(a+b)/c+sqrt((double)y)*1.2/c+x;
printf(〃%f\n〃,z);
}
则上面程序的输出结果是(c)
A)数据溢出B)9.3C)9.300000D)0.93
63、一个C语言的语句至少应包一个(C)
A){}B)逗号C)分号D)什么都不要
64、一个完整的C源程序是(B)o
A)要由一个主函数(或)一个以上的非主函数构成
B)由一个且仅由一个主函数和零个以上(含零)的非主函数构
C)要由一个主函数和一个以上的非主函数构成
D)由一个且只有一个主函数或多个非主函数构成
65、以下for语句构成的循环执行了(C)次。
#include
ttdefineN2
#defineMN+l
#defineNUM(M+l)*M/2
main()
{
inti,nF0;
for(i=l;i<=NUM;i++)
{
n++;
printfn);
}
}
A)4B)6C)8D)10
66、有以下函数charfun(char*p){returnp;}该函数的返
回值是(B)
A)无确切的值B)形参p中存放的地址
值
C)一个临时存储单元的地址D)形参p自身的地址值
67、在C语言程序中,注释部分从哪开始,到哪结束?
(D)
A)从(到)结束B)从REM开始无结束志标志
C)无起始标志D)从/*开始,*/结束
68、在C语言中,不正确的int类型的常数是(A)
A)32768
B)0C)037D)OxAF
69、在C语言中,
若对函数类型未加明显式说明
则函数的隐含
类型是(c)类型
A)void
B)doubleC)int
D)char
70、在C语言中,
函数的隐含存储类别是(C)
A)auto
B)staticC)extern
D)无存储
类别
71、在C语言中,
形参的缺省存储类别是(A)
A)auto
B)registerC)static
D)extern
72、在宏定义#definePI3.14159中,用宏名PI代替一个(D)
A)单精度数B)双精度数C)常量D)字符串
73、字符(char)型数据在微机内存屮的存储形式是(D)
A)反码B)补码C)EBCDIC码D)ASCII码
74、执行下面的程序后,a的值为(B)main()
{
inta,b;
for(a=l,b=l;a<=100;a++)
{
if(b>=20)break;
if(b%3=l)
{
b+=3;
continue;
}
b-二5;
A)7B)8C)9D)10
75、在以下定义屮,正确的说明语句为(D)
A)inta['a']B)inta[3,4]C)inta[][]D)int*a[10]
76、执行下面程序片段的结果是(B)
intx=23;
do{
printf("%2cT,x--);
}while(!
x);
A)打印出321B)打印出23C)不打印任何内容D)陷入死循环
77、在说明语句:
int*f();中,标识符f代表的是(D)
A)一个用于指向整型数据的指针变量
B)一个用于指向一维数组的行指针
C)一个用于指向函数的指针变量
D)一个返回值为指针型的函数名
78、在下列选项小,不正确的赋值语句是(D)
A)++t;B)nl=(n2=(n3=0));C)k=i==j;D)a=b+c=l;
79、在C语言中,若需一变量只在本文件中所有函数使用,则该变量的存储类别是(D)
A)externB)registerC)autoD)static
80、以下函数值的类型是(A)
fun(floatx)
{
floaty;
y=3*x-4;
returny;
}
A)intB)不确定C)voidD)float
81、以下说法中正确的是(C)
A)C语言程序总是从第一个函数开始执行
B)在C语言程序中,要调用的函数必须在main。
函数中定义
C)C语言程序总是从main()函数开始执行
D)C语言程序屮的mainO函数必须放在程序的开始部分
82、以下所列的各函数首部中,正确的是(C)
A)voidplay(vara:
integer,varb:
integer)
B)voidplay(inta,b)
C)voidplay(inta,intb)
D)subplay(aasinteger,basinteger)
84、以下叙述正确的是(D)
A)输入项可以是一个实型常量,女口:
scanf(〃%f〃,3.5);
B)只有格式控制,没有输入项,也能正确输入数据到内存,例如:
scanf(〃沪%d,b=%d〃);
C)当输入一个实型数据时,格式控制部分可以规定小数点后的位数,女口:
scanf(〃%4.2f〃,&f);
D)格式控制后面,必须指明变量地址,例如:
scanf(〃%f〃,&f);
85、以下叙述正确的是(D)
A)do-whi1e语句构成的循环不能用其它语句构成的循环来代替。
B)do-while语句构成的循环只能用break语句退出。
C)用do-while语句构成的循环,在while后的表达式为非零吋结束循环。
D)用do-while语句构成的循环,在while后的表达式为零时结束循坏。
86、以下叙述中不正确的是(D)
A)在不同的函数中可以使用相同名字的变量
B)函数中的形式参数是局部变量
C)在一个函数内定义的变量只在本函数范圉内有效
D)在一个函数内的复合语句中定义的变量在本函数范圉内有效
87、以下程序运行后,输出结果是(B)
main()
inty=l8,i=0,j,a[8];do
{
a[i]=y%2;
i++;y二y/2;
}while(y>=l);for(j=i-l;j>=0;j—)printf(〃%cT,a[j]);
printf(z,\n/z);
}
A)
1000B)1001088、以下对C语言函数的有关描述中,正确的是(A)
A)在C屮,调用函数时,只能把实参的值传送给形参,形参的值不能传送给实参
B)C函数既可以嵌套定义又可以递归调用
C)函数必须有返回值,否则不能使用函数
D)C程序中有调用关系的所有函数必须放在同一个源程序文件中89、以下对枚举类型名的定义中正确的是(B)
A)enuma={one,two,three};
B)enuma{one=9,two=-l,three};
C)enuma■二{"one","two","three"};
D)enuma{"one","two","three"};
A)signedshortint
B)unsignedlongint
C)unsignedint
D)longshort
90、以下选项屮不属于C语言的类型的是(D)
91、有如下程序:
intrunc(inta,intb){return(a+b);}
mainO
intx=2,y二5,z二&r;
r=func(func(x,y),z);printf("%\d\n",r);
}
该程序的输出的结果是(D)
A)12B)13C)14D)15
92、有如下程序:
longfib(intn)
if(n>2)
return(fib(n~l)+fib(n~2));elsereturn
(2);
main()
{
printf("%d\n",fib(3));
}
该程序的输出结果是(D)
D)8
B)比较两个字符串的大小
D)将字符串x连接到字符串y后面
A)2B)4C)6
93、下面函数的功能是(A)intfunl(char*x)
{
char*y二x;whiIe(*y++);
return(y-xT);
}
A)求字符串的长度
C)将字符串x复制到字符串y
94、下面函数的功能是(B)sss(char*s,char*t)
while((*s)&&(*t)&&(*t++二二*s++));return(*s-*t);
}
A)求字符串的长度B)比较两个字符串的大小
C)将字符串s复制到字符串t中D)将字符串s接续到字符串t中
95、设x、y均为整型变量,且x=10,y二3,则语句:
printf(
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言程序设计 复习题 docx