C语言题库Word下载.docx
- 文档编号:8521826
- 上传时间:2023-05-11
- 格式:DOCX
- 页数:37
- 大小:31.83KB
C语言题库Word下载.docx
《C语言题库Word下载.docx》由会员分享,可在线阅读,更多相关《C语言题库Word下载.docx(37页珍藏版)》请在冰点文库上搜索。
#defineS(a,b)t=a;
a=b;
b=t由于变量t没定义,所以此宏定义是错误的.(×
22.字符串只能存放在字符型数组中.(√)
23.若a=3,b=2,c=1则关系表达式"
24.在标准C中,"
="
是判断两个数是否相等.(×
25.函数调用可以出现在执行语句中,但不能出现在表达式中.(×
26.break语句可用于循环体内,它将退出该重循环.(√)
27.strcat(s1,s2)函数是将字符串s1复制到字符串s2中.(×
28.函数若无返回值,则它一定无形参。
29.C语言是一种结构化程序设计语言.(√)
30.静态外部变量只在本文件内可用.(√)
31.关系运算符<
=与==的优先级相同.(×
32.C语言中的整型常量有3种表示方法.(√)
33.C语言中只能逐个引用数组元素而不能一次引用整个数组.(√)
34.char*p="
girl"
;
的含义是定义字符型指针变量p,p的值是字符串"
.(×
35.静态变量和外部变量都是全局变量,它们的存储是静态的.(×
36.共同体变量所占的内存长度等于最长的成员的长度。
(√)
37.由于主函数首部经常缩写成main(),所以它不可能有形式参数.(×
38.通过return语句,函数可以带回一个或一个以上的返回值。
39.C语言俗称"
低级语言的高级形式"
这说明C语言的功能不强.(×
40.程序进行编译时,不为形式参数分配存储空间.(√)
41.C语言的当型循环是先执行循环后判断条件.(×
42."
++"
运算符的优先级比"
+"
运算符的优先低.(×
43.指针就是地址,因此一个变量的指针就是该变量的地址.(√)
44.在if语句中,else前一个语句可不加"
"
(×
45.return后面括号里的表达式的值即是此函数的值.(√)
46.chara[]={'
47.结构体类型只有一种。
(×
48.在任何情况下,对二维数组的初始化都可以省略第一维的大小。
49.结构化程序设计所规定的三种基本控制结构是顺序、选择、输出.(×
50.有数组定义inta[2][2]={{1},{2,3}};
二、单项选择题(每题2分)
1.C语言中运算对象必需是整型的运算符是( A )
A.%B./C.!
D.*
2.C程序的执行是从(A)
A本程序的main函数开始,到main函数结束
B本程序文件的第一个函数开始,到本程序文件的最后一个函数结束
C本程序的main函数开始,到本程序文件的最后一个函数结束
D本程序文件的第一个函数开始,到本程序main函数结束
3.以下选项中,(D)是不正确的C语言字符型常量。
A.'
B.'
\x41'
C.'
\101'
D."
a"
4.以下程序的输出结果是(C)
A.0 B.1 C.3 D.不确定的值
#include<
stdio.h>
main()
{intx=10,y=3;
printf(“%d\n”,y=x/y);
}
5.以下对二维数组a的正确说明是(C)
A.inta[3][]B.floata(3,4)
C.doublea[1][4]D.floata(3)(4)
6.字符串"
ABC"
在内存占用的字节数是(B)。
A.3B.4C.6D.8
7.下列运算符中优先级最高的运算符是(A)
A.!
B.%C.-=D.&
&
8.以下程序的输出结果是(A)
A.1B.2C.3D.4
#include<
{intw=4,x=3,y=2,z=1;
printf(“%d\n”,(w<
x?
w:
z<
y?
z:
x));
9.以下叙述正确的是(D)
A. do-while语句构成的循环不能用其他语句构成的循环代替.
B. do-while语句构成的循环只能用break语句退出
C. 用do-while语句构成循环时,只有在while后的表达式为非零时结束循环
D. 用do-while语句构成循环时,只有在while后的表达式为零时结束循环
10.在定义一个结构体变量时,系统分配给它的内存是(D)。
A.结构体中第一个成员所需内存量
B.结构体中最后一个成员所需内存量
C.成员中占内存量最大者所需容量
D.各成员所需内存量的总和
11.若有下列定义,则对a数组元素地址的正确引用是(C).
inta[5],*p=a;
A.*(p+5)B.*p+2
C.*(a+2)D.*&
a[5]
12.下列定义不正确的是(C)。
A.#definePI3.141592B.#defineS345
C.intmax(x,y);
intx,y;
{}D.staticcharc;
13.在C语言中,形参的缺省存储类是(A)。
A.autoB.register
C.staticD.extern
14.以下函数调用语句中实参的个数是(A).
exce((v1,v2),(v3,v4,v5),v6);
A.3B.4C.5D.6
15.以下描述中,正确的是(C)
A.预处理是指完成宏替换和文件包含中指定的文件的调用
B.预处理指令只能位于C源文件的开始
C.C源程序中凡是行首以#标识的控制行都是预处理指令
D.预处理就是完成C编译程序对C源程序第一遍扫描,为编译词法和语法分析作准备
16.以下字符中不是转义字符的是(C)
A.\aB.\bC.\cD.\\
17.C语言程序中必须有的函数是(B)
A.#include"
stdio.h"
B.main
C.printfD.scanf
18.有定义:
inta=8,b=5,c;
执行语句c=a/b+0.4;
后,c的值为( B )
A.1.4 B.1 C.2.0 D.2
19.以下程序的输出结果是(D)
A.i=2,,j=1,k=3B.i=1,,j=1,k=2 C.i=4,,j=2,k=4 D.i=1,j=1,k=3
#include<
{inti,j,k,a=3,b=2;
i=(--a==b++)?
--a:
++b;
j=a++;
k=b;
printf("
i=%d,j=%d,k=%d\n"
i,j,k);
}
20.下列选项中正确的语句组是(D)。
A.chars[8];
s={"
Beijing"
B.char*s;
C.chars[8];
s="
D.char*s;
21.若已定义x为int类型变量,下列语句中说
明指针变量p的正确语句是( C ).
A.intp=&
x;
B.int*p=x;
C.int*p=&
D.*p=*x;
22.sizeof(float)是( C ).
A.一种函数调用 B.一个不合法的表达式
C.一个整型表达式 D.一个浮点表达式
23.已知year为整型变量,不能使表达式(year%4==0&
year%100!
=0)||year%400==0的值为"
的数据是( A ).
A.1990 B.1992 C.1996 D.2000
24.下面有关for循环的正确描述是(D)
A.for循环只能用于循环次数已经确定的情况
B.for循环是先执行循环体语句,后判断表达式
C.在for循环中,不能用break语句跳出循环体
D.for循环的循环体语句中,可以包含多条语句,但必须用花括号括起来
25.在位运算中,操作数每右移一位,其结果相当于( B ).
A.操作数乘以2 B.操作数除以2
C.操作数乘以16 D.操作数除以16
26.以下能对二维数组a进行正确初始化的语句是( B )。
A.inta[2][]={{1,0,1},{5,2,3}};
B.inta[][3]={{1,2,3},{4,5,6}};
C.inta[2][4]={{1,2,3},{4,5},{6}};
D.inta[][3]={{1,0,1}{},{1,1}};
27.C语言中的文件的存储方式有( C )。
A.只能顺序存取 B.只能随机存取(或直接存取)
C.可以顺序存取,也可随机存取 D.只能从文件的开头进行存取
28.以下只有在使用时才为该类型变量分配内存的存储类说明是( B )。
A.auto和staticB.auto和register
C.register和staticD.extern和register
29.关于return语句,下列正确的说法是(C).
A.在主函数和其他函数中均可出现 B.必须在每个函数中出现
C.可以在同一个函数中出现多次 D.只能在除主函数之外的函数中出现一次
30.以下叙述中不正确的是( C ).
A.预处理命令行都必须以#号开始
B.在程序中凡是以#号开始的语句行都是预处理命令行
C.C程序在执行过程中对预处理命令行进行处理
D.以下是正确的宏定义#define IBM_PC
31.一个C语言程序是由(C)组成的。
A.主程序
B.子程序
C.函数
D.过程
32.判断char型变量c1是否为小写字母的最简单且正确的表达式为(D)。
A.'
<
=c1<
='
z'
B.(c1>
=a)&
(c1<
=z)
C.('
=c1)||('
>
=c1)
D.(c1>
)&
)
33.为了判断两个字符串s1和s2是否相等,应当使用(D)。
A.if(s1==s2)
B.if(s1=s2)
C.if(strcpy(s1,s2))
D.if(strcmp(s1,s2)==0)
34.设a,b都是int型变量,则表达式:
(a=2,b=5,a>
b?
a++:
b++,a+b)的值为(B)。
A.7
B.8
C.9
D.2
35.设x、y和t均为int型变量,则以下语句:
t=x;
x=y;
y=t;
的功能是(D)。
A.把x和y按从大到小排列
B.把x和y按从小到大排列
C.无确定结果
D.交换x和y中的值
36.下面标识符中,合法的用户标识符为(D)。
A.P#Ad
B.12a
C.char
D._int
37.循环语句while(!
E);
中的表达式!
E等价于(C)。
A.E!
=0
B.E!
=1
C.E==0
D.E==1
38.设有以下语句,则(A)不是对a数组元素的正确引用,其中0≤i<
10。
int
a[10]={0,1,2,3,4,5,6,7,8,9};
*p=a;
供选择的答案是:
A.a[p-5]
B.*(&
a[i])
C.p[i]
D.*(a+i)
39.若用数组名作为函数调用的实参,传递给形参的是
(A)。
A.数组的首地址
B.数组第一个元素的值
C.数组中全部元素的值
D.数组元素的个数
40.在一个文件中定义的全局变量的作用域为(D)。
A.本程序的全部范围;
B.本文件的全部范围;
C.函数内的全部范围;
D.从定义该变量的位置开始到文件结束。
41.以下语句中,指针s所指字符串的长度为(A)。
char*s=”\\Hello\tWorld\n”;
A.13
B.12
C.14
D.10
42.若调用一个函数,且此函数中没有return语句,则正确的说法是:
该函数(D)。
A.没有返回值
B.返回若干个系统默认值
C.能返回一个用户所希望的函数值
D.返回一个不确定的值
43.以下只有在使用时才为该类型变量分配内存的存储类说明是( B )。
44.关于return语句,下列正确的说法是(C).
45.设有下列程序段,则scanf函数调用语句中对结构体变量成员的不正确引用为(B)。
structstudent
{
charname[20];
intage;
charsex;
}stu[5],*p;
p=stu;
A.scanf("
%s"
stu[0].name);
B.scanf("
%d"
p->
age);
C.scanf("
%c"
&
(p->
sex));
D.scanf("
stu[0].age);
46.若x、y、j和k都是int型变量,则计算表达式x=(k=32,j=6,i=4)后,x的值为(C)。
A.4B.16C.32D.52
47.C语言中标识符只能由字母、数字和下划线组成,且第一个字符(B)。
A.必须为字母B.必须为字母或下划线
C.必须为下划线D.可以是字母、数字和下划线中任一种字符
48.在C语言中,引用数组元素时,其数组下
标的数据类型允许是(C)。
A.整型常量B.整型表达式
C.整型常量或整型表达式D.任何类型的表达式
49.执行下列语句后的输出为(A)。
intj=-1;
if(j<
=1)printf("
****\n"
);
elseprintf("
%%%%\n"
A.****B.%%%%C.%%%%cD.有错,执行不正确
50.以下各选项企图说明一种新的类型名,其中正确的是(C)。
A.typedefv1int;
B.typedefv2=int;
C.typedefintv3;
D.typedefv4:
int;
51.先用语句定义字符型变量c,然后要将字符a赋给c,则下列语句中正确的是(A).
A.c='
B.c="
C.c="
97"
D.C='
97'
52.用户定义的函数不可以调用的函数是(C)。
A.非整型返回值的 B.本文件外的
C.main函数 D.本函数下面定义的
53.与实际参数为实型数组名相对应的形式参数不可以定义为( C ).
A.floata[];
B.float*a;
C.floata;
D.float(*a)[3];
54.下列程序段的输出结果为( C ).
inta=7,b=9,t;
t=a*=a>
a:
b;
t);
A.7 B.9 C.63 D.49
55.若有int*p=(int*)malloc(sizeof(int));
则向内存申请到内存空间存入整数123的语句为( A )。
A.scanf("
p);
B.scanf("
&
p);
C.scanf("
*p);
D.scanf("
**p);
56.以下描述中正确的是( C ).
A.由于do-while循环中循环体语句只能是一条可执行语句,所以循环体内不能使用复合语句
B.do-while循环由do开始,用while结束,在while(表达式)后面不能写分号
C.在do-while循环体中,一定要有能使while后面表达式的值变为零("
假"
)的操作
D.do-while循环中,根据情况可以省略while
57.在位运算中,操作数每左移一位,其结果相当于( A )。
C.操作数除以4 D.操作数乘以4
58.以下只有在使用时才为该类型变量分配内存的存储类说明是( B )。
59.若chara[10];
已正确定义,以下语句中不能从键盘上给a数组的所有元素输入值的语句是(D).
A.gets(a);
B.scanf("
a);
C.for(i=0;
i<
10;
i++)a[i]=getchar();
D.a=getchar();
60.设有下列程序段,则scanf函数调用语句中对结构体变量成员的不正确引用为(B)。
61.以下标识符中,不能作为合法的C用户定义标识符的是(C).
A.answerB.toC.signedD._if
62.以下数组定义中不正确的是(D).
A.inta[2][3];
B.intb[][3]={0,1,2,3};
C.intc[100][100]={0};
D.intd[3][]={{1,2},{1,2,3},{1,2,3,4}};
63.设有说明:
charw;
intx;
floaty;
doublez;
则表达式w*x+z-y值的数据类型为(D)。
A.floatB.charC.intD.double
64.下列各m的值中,能使m%3==2&
m%5==3&
m%7==2为真的是(B)。
A.8B.23C.17D.6
65.以下正确的说法是:
在C语言中(A).
A:
实参和与其对应的形参各占用独立的存储单元
B:
实参和与其对应的形参共占用一个存储单元
C:
只有当实参和与其对应的形参同名时才共占用存储单元
D:
形参是虚拟的,不占用存储单元
66.经过以下语句定义后,表达式z+=x>
++x:
++y的值为(C).
intx=1,y=2,z=3;
A.2B.3C.6D.5
67.若有说明:
inta[][4]={0,0};
则下面不正确的叙述是( D ).
A.数组a的每个元素都可得到初值0 B.二维数组a的第一维大小为1
C.因为二维数组a中第二维大小的值除经初值个数的商为1,故数组a的行数为1
D.有元素a[0][0]和a[0][1]可得到初值0,其余元素均得不到初值0
68.以下对枚举类型名的定义中正确的是( B )。
A.enuma={sum,mon,tue};
B.enuma{sum=9,mon=-1,tue};
C.enuma={"
sum"
"
mon"
tue"
D.enuma{"
69.putchar函数可以向终端输出一个( D )。
A.整型变量表达式值 B.实型变量值
C.字符串 D.字符或字符型变量值
70.在定义一个结构体变量时,系统分配给它的内存是(D)。
C.成员中占内存量
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 题库