20春学期(1709、1803、1809、1903、1909、2003)
试卷总分:100 得分:100
一、单选题 (共 40 道试题,共 80 分)
1.设有以下说明语句 struct stu {int a;float b;}stutype; 则以下叙述不正确的是( )
A.stutype 是用户定义的结构体类型名
B.struct 是结构体类型的关键字
C.struct stu 是用户定义的结构体类型
D.a 和 b 都是结构体成员名
2.变量的指针,其含义是指该变量的( )
A.标识
B.地址
C.名字
D.值
3.以下对C语言中共用体类型数据的叙述正确的是( )
A.可以对共用体变量名直接赋值
B.共用体类型定义中不能出现结构体类型的成员
C.一个共用体变量中可以同时存放其所有成员
D.一个共用体变量中不能同时存放其所有成员
4.一个源程序文件由一个或多个什么组成( )
A.语句
B.程序块
C.子程序
D.函数
5.若有以下定义语句 union data {int l; char c; float f;}a; int n;则以下语句正确的是( )
A.printf(“%d\n”,a.l);
B.n=a;
C.a=5;
D.a={2,’a’,1.2};
6.下列关于数组的特征错误的是( )。
A.定义数组长度时可以用常量或变量
B.可以有多维
C.可以作参数传递
D.先定义后使用
7.已知p,p1为指针变量,a为数组名,i为整型变量,下列赋值语句中不正确的是( )
A.p=p1
B.p=&i
C.p=&a[i]
D.p=10
8.在C语言中,要求运算数必须是整型的运算符是( )。
A./
B.&&
C.%
D.!=
9.int k=1; while (k<=10); 上述语句执行后,变量k的值是( )。
A.无限循环,值不定
B.9
C.11
D.10
10.以下对一维整型数组 a 的正确说明是( )
A.int n=10,a[n];
B.int n;
C.int a(10) ;
D.define SIZE 10 int a[SIZE];
11.如果在C语言中一个int型数据在内存中占2个字节,则unsigned int型数据的取值范围为( )。
A.0~65 535
B.0~32 767
C.0~255
D.0~2 147 483 647
12.下列函数调用中,不正确的是( )
A.max(a,b)
B.max(3,a+b)
C.max(3,5)
D.int max(a,b)
13.设有如下程序 # include<stdio.h> main() { char ch1=’A’,ch2=’a’; printf(“%c\n”,(ch1,ch2)); } 则下列叙述正确的为( )
A.运行时产生错误信息
B.程序的输出结果为小写字母a
C.程序的输出结果为大写字母A
D.格式说明符的个数少于输出项的个数,编译出错
14.在C语言中,char型数据在内存中的存储形式是( )
A.补码
B.反码
C.原码
D.ASCII码
15.在 C 语言中,引用数组元素时,其数组下标的数据类型允许是( )。
A.整型表达式
B.整型常量或整型表达式
C.整型常量
D.任何类型的表达式
16.main() {struct date {int year,month,day;}today; printf(“%d\n”,sizeof(struct date));} 以上程序的运行结果是( )
A.8
B.6
C.12
D.10
17.若已有定义int x=2; int *p=&x;则*p的值为( )
A.2
B.*x
C.&x
D.&p
18.当不能正确执行文件关闭操作时,fclose函数的返回值是( )。
A.TRUE
B.EOF
C.1
D.-1
19.下面4个选项中,均是不合法的用户标识符的选项是( )
A.float a0 _A
B.b-a 123 int
C.A P_0 do
D._123 temp INT
20.下面程序段 int k=2; while (k==0) {printf(“%d”,k);k–;} 则下面描述中正确的是()。
A.循环是无限循环
B.循环体语句执行一次
C.循环体语句一次也不执行
D.while 循环执行 10 次
21.若要打开D盘上user文件夹下名为abc.txt的文本文件进行读、写操作,符合此要求的函数调用是( )
A.fopen(“D:\user\abc.txt”,”w”)
B.fopen(“D:\user\abc.txt”,”rb”)
C.fopen(“D:\\user\\abc.txt”,”r+”)
D.fopen(“D:\\user\\abc.txt”,”r”)
22.main( ) {int n=4; while(n)printf(“%d “,–n); } 以上程序的输出结果是( )。
A.3 2 1 0
B.3 1
C.2 1 0
D.2 0
23.x=-1; do { x=x*x; } while (x); 以上程序段( )
A.有语法错误
B.是死循环
C.循环执行2次
D.循环执行1次
24.若已有定义int x;下列说明指针变量p指向x的正确语句是( )
A.int p=x;
B.int p=&x;
C.int *p=x;
D.int *p=&x;
25.已知各变量的类型说明如下: int i=8,k,a,b; unsigned long w=5; double x=1.42,y=5.2; 则以下符合C语言语法的表达式是:
A.y=f1oat(i)
B.x%(一3)
C.a十=a一=(b= 4)*(a=3)
D.a=a*3=2
26.下面4个选项中,均是C语言关键字的选项是( )。
A.switch typedef continue
B.signed union scanf
C.if struct type
D.auto enum include
27.下列哪个是字符写函数( )。
A.fwrite
B.fputc
C.fgets
D.fgetc
28.printf函数中用到格式符%5s ,其中数字5表示输出的字符串占用5列。如果字符串长度大于5,则输出按方式( )
A.输出错误信息
B.按原字符长从左向右全部输出
C.右对齐输出该字串,左补空格
D.从左起输出该字串,右补空格
29.以下不正确的叙述是( )
A.若a和b类型相同,在执行了赋值表达式a=b后b中的值将放人a中,而b中的值不变。
B.当从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输入实型数值。
C.在C程序中,逗号运算符的优先级最低
D.在C程序中,APH和aph是两个不同的变量
30.C语言中规定,if语句的嵌套结构中,else总是与( )配对
A.按缩进位置相同的if配套
B.与第一个if 配套
C.与最近的且尚未配对的if 配套
D.与最近的if 配套
31.以下叙述中错误的是:
A.局部变量的作用域是在定义它的函数体内
B.同一程序中,全局变量的作用域一定比局部变量的作用域大
C.变量的作用域取决于变量定义语句出现的位置
D.全局变量的作用域是从定义位置开始至源文件结束
32.若有以下定义语句:int a[10]={1,2,3,4,5,6,7,8,9,10}; 则下列哪个是对该数组元素的正确引用( )
A.a[a[9]]
B.a[a[4]+4]
C.a[a[3]-5]
D.a[10]
33.fscanf函数的正确调用形式是( )。
A.fscanf(格式字符串,输出表列, fp)
B.fscanf(格式字符串,文件指针,输出表列)
C.fscanf(文件指针,格式字符串,输出表列)
D.fscanf(文件指针,格式字符串,输入表列)
34.若执行fopen函数时发生错误,则函数的返回值是( )
A.地址值
B.null
C.EOF
D.1
35.for (i=2; i==0; ) printf(“%d” , i–) ; 以上程序段的循环次数是( )
A.无限次
B.2次
C.1 次
D.0次
36.下面正确的字符常量是( )
A.”(中间没有空格)
B.”c”
C.’W’
D.”\\”
37.main() { int x,y,z; scanf (“%d%d%d”,&x,&y,&z); printf(“x+y+z=%d\n”,x+y+z); } 输入数据的形式是25,13,10<回车>,则程序的输出结果是( )
A.不确定值
B.x+z=35
C.x+y+z=48
D.x+y+z=35
38.判断字符串a是否大于b,应当使用( )
A.if (strcmp(b,a)>0)
B.if (strcmp(a,b)>0)
C.if (strcmp(a,b))
D.if (a>b)
39.下面不正确的字符串常量是( )。
A.abc’
B.”12’12”
C.”0 ”
D.” ”
40.已有定义 int a=-2;和输出语句:printf(“%8lx”,a);以下正确的叙述是:
A.整型变量的输出格式符只有%d一种
B.%x 是格式符的一种,它可以适用于任何一种类型的数据
C.%x 是格式符的一种,其变量的值按十六进制输出,但%8lx 是错误的
D.%8lx 不是错误的格式符,其中数字8规定了输出字段的宽度
二、判断题 (共 10 道试题,共 20 分)
41.C语言采用解释方式将源程序转换为二进制的目标代码。( )
42.对整型常量可进行自加或自减运算,而对变量或表达式不可以。( )
43.在Visual C中,整型数据在内存中占2个字节。( )
44.对C语言中用到的任何一个变量都要规定其类型。( )
45.在Turbo C++中,存储字符串常数时所占内存空间是不固定。( )
46.被main函数调用的函数只能是库函数。( )
47.在Visual C中,实型数据在内存中占4个字节。( )
48.在C语言中,字母的大小写不被区分。( )
49.字符型数据和整数之间是不可以通用的。( )
50.C语言中的标识符以字母或下划线开头,可跟任何字符。( )