C语言程序设计练习题Word文档下载推荐.docx
《C语言程序设计练习题Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《C语言程序设计练习题Word文档下载推荐.docx(28页珍藏版)》请在冰豆网上搜索。
11.在C语言中,下列说法中正确的是(C)。
A.不能使用“do语句while(条件)”实现循环
B.“do语句while(条件)”的循环必须使用“break”语句退出循环
C.“do语句while(条件)”的循环中,当条件为非0时将结束循环
D.“do语句while(条件)”的循环中,当条件为0时将结束循环
12.C语言程序的3种基本结构是(A)结构、选择结构和循环结构。
A.顺序B.递归C.转移D.嵌套
13.若有定义“intx,y;
”,则下面选项中合法的if语句是(A)。
A.if(a==b)x++;
B.if(a=<
b)x++;
C.if(a<
>
D.if(a=>
14.下面程序段
intk=2;
while(k=0){printf("
%d"
k);
k--;
则下面描述中正确的是(C)。
A.while循环执行两次B.循环式无限循环
C.循环体语句一次也不执行D.循环体语句执行一次
15.从循环体内某一层跳出,继续执行循环体外的语句是:
(A)。
A.break语句B.return语句C.continue语句D.空语句
16.表达式“9!
=7”的值是(C)。
A.tureB.非0值C.0D.1
17.下面for语句的循环次数是(B)。
inti,x;
for(i=0,x=0;
i<
=9&
x!
=876;
i++)
scanf("
x);
A.最多循环10次B.最多循环9次C.无限循环D.一次也不循环
18.下列选项中合法的数组定义是(C)。
A.ints[]={"
string"
};
B.inta[5]={'
abc'
'
1'
C.chara={"
D.chara[]={0,1,2,3};
19.下列选项中对二维数组不正确的初始化是(D)。
A.inta[][3]={3,2,1,1,2,3};
B.inta[][3]={{3,2,1},{1,2,3}};
C.inta[2][3]={{3,2,1},{1,2,3}};
D.inta[][]={{3,2,1},{1,2,3}};
20.若有如下定义“inta[][3]={1,2,3,4,5,6};
”,则a[1][0]的值是(A)。
A.4B.1C.2D.5
21.若有定义语句“inta[10];
”,则对数组a元素的正确引用是(A)。
A.a[10]B.a[3.5]C.a(5)D.a[10-10]
22.有以下程序
#include"
stdio.h"
string.h"
char*p[10]={"
abc"
"
aabdfg"
dcdbe"
abbd"
cd"
printf("
%d\n"
strlen(p[4]));
执行后输出结果是(A)。
A.2B.3C.4D.5
23.有以下程序
intp[7]={11,13,14,15,16,17,18},i=0,k=0;
while(i<
7&
p[i]%2)
{k=k+p[i];
i++;
执行后输出结果是(D)。
A.58B.56C.45D.24
24.若有下面的变量定义,以下语句中合法的是()。
inti,a[10],*p;
A.p=a+2;
B.p=a[5];
C.p=a[2]+2;
D.p=&
(i+2);
25.C语言规定函数的返回值的类型由()。
I.return语句中的表达式类型所决定
J.调用该函数时的主调用函数类型所决定
K.调用该函数时系统临时决定
L.在定义该函数时所指定的函数类型所决定
26.以下所列的各函数首部中,正确的是()
A.voidplay(var:
integer,varb:
integer)B.voidplay(inta,b)
C.voidplay(inta,intb)D.Subplay(aasinteger,basinteger)
27.以下说法中正确的是()。
M.C语言程序总是从第一个定义的函数开始执行
N.在C语言程序中,要调用的函数必须在voidmain()函数中定义
O.C语言程序总是从voidmain()函数开始执行
P.C语言程序中的main()函数必须放在程序的开始部分
28.若程序中定义了以下函数
doublemyadd(doublea,doubleb)
{return(a+b);
并将其放在调用语句之后,则在调用之前应该对该函数进行声明,以下选项中错误的声明是()。
A.doublemyadd(doublea,b)B.doublemyadd(double,double)
C.doublemyadd(doubleb,doublea)D.doublemyadd(doublex,doubley)
29.在C语言中,下面说法中正确的是()。
Q.函数定义可以嵌套,但函数调用不能嵌套
R.函数定义不可以嵌套,但函数调用可以嵌套
S.函数定义和调用均不能嵌套
T.函数定义和调用均可以嵌套
30.一个程序由若干文件组成,共用同一变量,则此变量的存储类别是()。
A.autoB.externC.staticD.register
31.在VC++编译环境的编译信息窗口出现提示信息“example.obj-0error(s),0warning(s)”,表示这是()的结果。
A.编译B.编辑C.连接D.运行
32.算法的表示形式多种多样,常见的有自然语言、程序流程图、伪代码描述和()。
A.框图B.N-S图C.目标图D.结构图
33.在C语言中,变量所分配的内存空间大小()。
A.均为一个字节B.由用户自己定义
C.由变量的类型决定D.任意
34.在C语言中,char型数据在内存中的存储形式是()。
A.补码B.反码C.原码D.ASCII码
35.C语言的基本数据类型包括()。
A.整型、浮点型、逻辑型B.整型、浮点型、字符型、逻辑型
C.整型、字符型、逻辑型D.整型、浮点型、字符型
36.在C语言中,要求运算的量必须是整型的运算符是()。
A.*B./C.++D.%
37.语句“for(i=-1;
i<
4;
i++);
”的循环体将执行()次。
A.3B.4C.5D.6
38.语句“for(s=2;
;
s++);
”可以理解为()。
A.for(s=2;
0;
B.for(s=2;
1;
C.for(s=2;
s<
2;
D.for(s=2;
s>
39.C语言对嵌套if语句的规定是:
else总是与()。
A.之前最近的if配对B.第一个if配对
C.缩进位置相同的if配对D.之前最近的且尚未配对的if配对
40.语句“while(!
E);
”括号中的表达式!
E等价于()。
A.E==0B.E!
=1C.E!
=0D.E==1
41.C语言中的标识符只能由字母、数字、下划线3种字符构成,且第一个字符()。
A.必须是字母或下划线B.必须是下划线
C.可以是字母、数字、下划线中的任意字符D.必须是字母
42.表达式“a=(a=6,a*6,a+3)”计算后,a的值是()。
A.39B.36C.6D.9
43.下列数据中属于字符串常量的是()。
A.ABCB."
ABC"
C.'
D.'
a'
44.字符串"
\\\"
ABC\"
\\"
的长度是()。
A.11B.7C.5D.3
45.假设int类型变量占用4字节,且有语句“intx[10]={0,2,4};
”,则数组x在内存中所占字节数是()。
A.3B.12C.4D.40
46.以下数组定义中不正确的是()。
A.inta[2][3];
B.intb[][3]={0,1,2,3};
C.intc[100][100];
D.intd[3][]={{1,2},{1,2,3},{1,2,3,4}};
47.有以下定义,其中不能给数组a输入字符串语句的是()。
#include<
chara[10],*b=a;
A.gets(a);
B.gets(a[0]);
C.gets(&
a[0]);
D.gets(b);
48.以下程序段中错误的是()。
A.chars[10]="
abcdefg"
;
B.chart[]="
*s=t;
C.chars[10];
s="
D.chars[10];
strcpy(s,"
);
49.以下程序段的输出结果是()。
chars[12]="
abook!
"
printf("
%s"
s+2);
A.abook!
B.abo
C.book!
D.因格式描述不正确,无输出
50.有定义“chars[12]={"
”,则“printf("
strlen(s));
”的输出结果是()。
A.6B.7C.11D.12
51.有定义“inta[2][3];
”,则该二维数组的元素个数是()。
52.有定义“inta[][3]={1,2,3,4,5,6};
”,则该二维数组的第一维长度是()。
A.2B.3C.4D.无法确定
53.在调用函数时,如果实参是简单变量,则它与对应形参之间的数据传递方式是()。
A.地址传递B.单向值传递
C.不能确定D.由用户确定
54.在调用函数时,如果实参是数组名,则它向形参传递的是()。
A.数组长度B.数组所有元素的地址
C.数组首地址D.数组所有元素的值
55.以下叙述中正确的是()。
A.全局变量的作用域可能比局部变量的作用域大
B.静态变量的生存期贯穿于整个程序运行期间
C.函数的形参都属于全局变量
D.未在定义语句中赋初值的auto变量和static变量的初值都是随机的
56.若已定义的函数有返回值,以下叙述中错误的是()。
A.函数调用可以作为独立的语句存在
B.函数调用可以作为另一个函数的实参
C.函数调用可以出现在表达式中
D.函数调用可以作为一个函数的形参
57.一个C语言程序由函数A、B、C、P构成,在函数A中分别调用了函数B和函数C,在函数B中调用了函数A,且在函数P中也调用了函数A,则可以说()。
A.函数B是函数A的间接递归调用
B.函数A是函数B的间接递归调用
C.函数P直接递归调用了函数A
D.函数C调用的是函数P的嵌套
58.下列对C语言函数的描述中,正确的是()。
A.调用函数时,只能把实参的值传递给形参,反之不能
B.函数既可嵌套定义又可嵌套调用
C.函数必须有返回值,否则不能使用函数
D.有调用关系的所有函数必须放在同一个源程序文件中
59.有一个名为newpr的函数用于打印三角函数的曲线,其形参就是这些函数名,则newpr函数的原型是()。
A.doublenewpr(doublex)
B.voidnewpr(double(*f)(doublex))
C.voidnewpr(double(*f)(),doublex)
D.void(*newpr)(doublef(doublex))
60.函数"
func(inta){printf("
a);
return0;
}"
的返回值类型是()。
A.intB.voidC.没有返回值D.无法确定
61.程序运行输出错误的结果,可以排除下列哪一个因素( )。
A、算法错误B、运行时输入数据错误C、未通过编译D、系统资源配置不当
62."
E2"
是( )。
A、值为100的实型常数B、值为100的整型常数C、不合法的标识符D、合法的标识符
63、逻辑运算符中,运算优先级按从高到低依次为( )。
A、&
,!
,||B、||,&
C、&
,||,!
D、!
,&
,||
64.a是int型变量,c是字符变量。
下列输入语句中哪一个是错误的( )。
A、scanf("
%d,%c"
&
a,&
c);
B、scanf("
%d%c"
a,c);
C、scanf("
D、scanf("
d=%d,c=%c"
65.下列各语句序列判别变量x、y的大小,若x<
y则交换它们的值,其中正确的是( )。
A、if(x<
y){x=y;
y=x}B、if(x<
y){t=x;
x=y;
y=t}
C、if(x<
y)x=y;
y=x;
D、if(x<
y)t=x;
y=t;
66、下列语句中,哪一个可以输出26个大写英文字母( )。
A、for(a='
A'
a<
'
Z'
%c"
++a));
B、for(a='
='
a++);
C、for(a='
a++));
D、for(a='
67、下列各语句定义了数组,其中哪一个是不正确的( )。
A、ints_1[5],s_2[4][3];
B、floatx,a[4][5];
C、charstring[]="
hello!
D、intx(10),y(10);
68、定义一个带参数的宏,使两个参数a、b的值交换,下列表述中哪一个是正确的( )。
A、#definejh(a,b,t)t=a;
a=b;
b=tB、#definejh(a,b,t){t=a;
b=t}
C、#definejh(a,b)t=a;
b=t;
D、#definejh(a,b){t=a;
69.假如指针p1已经指向某个整型变量,要使指针p2也指向同一个变量,哪一个语句是正确的( )。
A、p2=*&
p1;
B、p2=**p1;
C、p2=&
*p1;
D、p2=*p1;
70.数组定义为"
inta[4][5];
,引用"
a[1]+3"
表示( )。
A、a数组第1行第3列元素的地址B、a数组第1行第3列元素的值
C、a数组第4行的首地址D、a数组第4列的首地址
71.共用体定义为"
uniondata{charch;
}a;
下列哪一个是正确的( )。
A、a.ch='
x'
a.ch--;
B、a={'
1};
C、a={'
1}D、a.x.ch='
72.按位或运算:
inta=6,b=8,c=a|b;
变量c的值是( )。
A、2B、14C、48、D、-2
73.按位取反运算:
inta=7,c=~a;
变量c的值是( )。
A、-8B、4C、3、D、-7
74.以"
追加"
方式打开文本文件a:
\aa.dat,下列语句中哪一个是正确的( )。
A、fp=fopen("
a:
\aa.dat"
ab"
B、fp=fopen("
a"
C、fp=fopen("
r+"
D、fp=fopen("
w"
75.以下程序段,标有/**********/的那行语句的执行次数为()。
inti,j,y;
j=0;
for(i=0;
10;
i++)
{if(i%2)continue;
y=y+i;
}/**********/
A、10B、5C、9D、4
76.若有语句staticchar[]={“china”};
那么a[5]的值是()。
A、’a’B、‘\n’C、’\0’D、不确定
77.执行语句:
staticchara[10]={“12345”};
intj;
j=strlen(a);
之后,j的值是()。
A、5B、4C、10D、6
78.若有说明语句chara[10],*p;
那么能使指针p指向数组a的表达式是()。
A、p=a[0]B、*p=aC、*p=&
aD、p=&
a[0]
79.若定义变量:
intn=10;
有下列程序段,则循环的输出结果是()。
while(n>
7)
{n--;
n);
A、10B、9C、10D、9
9898
87
80.如果一个函数中没有return语句,那么()。
A、该函数没有返回值B、该函数返回一个不确定的值
C、返回-1D、程序会出错
81.C语言程序的三种基本结构是顺序结构、()结构和循环结构。
A、选择B、递归C、转移D、嵌套
82.下列变量名中合法的变量是()。
A、a#cB、INTC、3dcD、a$
83.在C程序中用关键字( )定义短整型常量。
A、shortB、floatC、doubleD、char
84.十进制数16的十六进制形式是( )。
A、11B、12C、13D、10
85.若变量已正确定义,( )是合法的C语句。
A、a=1,b=2B、a=1=b;
C、a=b=5;
D、y=;
86.若变量已正确定义并赋值,符合C语言语法的表达式是( )。
A、a=3,5;
B、a+=1C、a=a+1=3D、12.3%4
87.a是单精度实型变量,c是基本整型变量,以下正确的输入语句是( )。
A、scanf(“%f%d”,a,c);
B、scanf(“%f%d”,&
C、scanf(“%f%f”,&
D、scanf(“%d%f”,&
88.在C程序中用( )表示逻辑值“真”。
A、tureB、非0数C、非0整数D、大于0的数
89.假设有说明语句chara=’\n’,则变量a( )。
A、包含一个字符B、包含二个字符
C、包含三个字符D、说明不合法
90.C语言程序由( )组成。
A、子程序B、过程C、函数D、主程序和子程序
91.下列语句定义pd为指向int类型变量d的指针,( )是正确的。
A、intd,*pd=&
d;
B、int*pd=&
d,d;
C、floatd,*pd=&
D、float*pd=&
92.若变量已正确定义并且指针p已经指向变量x,则&
*p相当于( )。
A、xB、*pC、pD、*&
x
93.定义一个4个元素的一维整型数组,( )是不正确的。
A、inta[4];
B、inta[4]={1,2,3,4,5}
C、inta[4]={1,2,3}D、inta[4]={1}
94.数组定义为inta[3][2]={1,2,3,4,5,6},数组元素( )的值是为6。
A、a[3][2]B、a[2][1]C、a[1][2]D、a[2][3]
95.不正确的字符串赋值或赋初值的方式是()。
A、charstr[]=”string”;
B、charstr[7]={‘s’,’t’,’r’,’i’,’n’,’g’};
C、charstr[10];
str=”string”;
D、charstr[7]={‘s’,’t’,’r’,’i’,’n’,’g’,’\0’};
96.要调用数学函数时,在#include命令行中应包括()。
A、”stdio.h”B、”string.h”
C、”math.h”D、”ctype.h”
97.若变量已正确定义,表达式(j=1,++j)的值是(