20秋学期(1709、1803、1809、1903、1909、2003、2009 )《C语言程序设计》在线作业
试卷总分:100 得分:100
一、单选题 (共 40 道试题,共 80 分)
1.设有如下程序 # include<stdio.h> main() { char ch1='A',ch2='a'; printf("%c\n",(ch1,ch2)); } 则下列叙述正确的为( )
A.程序的输出结果为大写字母A
B.程序的输出结果为小写字母a
C.运行时产生错误信息
D.格式说明符的个数少于输出项的个数,编译出错
答案:B
2.当不能正确执行文件关闭操作时,fclose函数的返回值是( )。
A.-1
B.EOF
C.TRUE
D.1
答案:B
3.从用户使用的角度看,函数有两种,它们是( )
A.库函数和用户自定义函数
B.库函数和主函数
C.用户自定义函数和主函数
D.主函数和子函数
答案:A
4.x=-1; do { x=x*x; } while (x); 以上程序段( )
A.是死循环
B.循环执行2次
C.循环执行1次
D.有语法错误
答案:D
5.以下不正确的语句为( )
A.if(x>y);
B.if(x>y){x++;y++;}
C.if(x=y)&&(x!=0)x+=y;
D.if(x!=y) scanf("%d",&x); else scanf("%d",&y);
答案:C
6.putchar函数可以向终端输出一个:
A.整型变量表达式值
B.实型变量值
C.字符串
D.字符或字符型变量值
答案:D
7.设以下变量均为int类型,则值不等于7的表达式是( )
A.(x= y= 6, x+y,x+1)
B.(x= y= 6,x+y,y+1)
C.(x= 6,x+1,y= 6,x+y)
D.(y=6,y+l,x = y,x+1)
答案:C
8.已知各变量的类型说明如下: int i=8,k,a,b; unsigned long w=5; double x=1.42,y=5.2; 则以下符合C语言语法的表达式是:
A.a十=a一=(b= 4)*(a=3)
B.a=a*3=2
C.x%(一3)
D.y=f1oat(i)
答案:A
9.fgetc函数的作用是从指定文件读入一个字符,该文件的打开方式必须是( )
A.只写
B.追加
C.读或读写
D.答案B和C都正确
答案:D
10.下列哪个是读写文件出错检测函数( )。
A.ferror
B.clearerr
C.feof
D.fwrite
答案:A
11.当把以下四个表达式用作if语句的控制表达式时,有一个选项与其它三个选项含义不同,这个选项是
A.k%2
B.k%2==0
C.(k%2)!=0
D.!(k%2==0)
答案:B
12.以下对一维整型数组 a 的正确说明是( )
A.int a(10) ;
B.int n=10,a[n];
C.int n;
D.define SIZE 10 int a[SIZE];
答案:D
13.关于return语句,下列说法正确的是( )。
A.不能在主函数中出现
B.必须在每个函数中出现
C.可以在同一个函数中出现多次
D.只能在除主函数之外的函数中再出现一次
答案:C
14.x=-2; y=-1; if(x!=0) if(x>0) y=1; else y=0; 该程序段的输出结果为( )。
A.1
B.0
C.-1
D.不确定
答案:B
15.struct person {char name[9]; int age;}; struct person class[10]={"John",17,"Paul",19,"Mary"18,"adam",16}; 根据上面的定义,能打印出字母M的语句是( )。
A.printf("%c\n",class[3].name);
B.printf("%c\n",class[3].name[1]);
C.printf("%c\n",class[2].name[1]);
D.printf("%c\n",class[2].name[0])
答案:D
16.C语言的函数中,( )。
A.必须有形参
B.形参必须是变量名
C.可以有也可以没有形参
D.数组名不能作形参
答案:C
17.设有说明语句:char w;int x;float y;double z;w*x+z-y值的数据类型为( )。
A.float
B.char
C.int
D.double
答案:D
18.下面程序段 int k=2; while (k==0) {printf(“%d”,k);k--;} 则下面描述中正确的是()。
A.while 循环执行 10 次
B.循环是无限循环
C.循环体语句一次也不执行
D.循环体语句执行一次
答案:C
19.当说明一个结构体变量时系统分配给它的内存是( )
A.各成员所需内存的总和
B.结构中第一个成员所需内存量
C.成员中占内存量最大者所需的容量
D.结构中最后一个成员所需内存量
答案:A
20.若已有定义int x;下列说明指针变量p指向x的正确语句是( )
A.int p=&x;
B.int *p=&x;
C.int p=x;
D.int *p=x;
答案:B
21.已知p,p1为指针变量,a为数组名,i为整型变量,下列赋值语句中不正确的是( )
A.p=&i
B.p=p1
C.p=&a[i]
D.p=10
答案:D
22.下面不正确的字符串常量是( )。
A.abc'
B."12'12"
C."0 "
D." "
答案:A
23.下面4个选项中,均是C语言关键字的选项是( )。
A.auto enum include
B.switch typedef continue
C.signed union scanf
D.if struct type
答案:B
24.已有定义 int a=-2;和输出语句:printf("%8lx",a);以下正确的叙述是:
A.整型变量的输出格式符只有%d一种
B.%x 是格式符的一种,它可以适用于任何一种类型的数据
C.%x 是格式符的一种,其变量的值按十六进制输出,但%8lx 是错误的
D.%8lx 不是错误的格式符,其中数字8规定了输出字段的宽度
答案:D
25.for (i=2; i=0; ) printf(“%d” , i--) ; 以上程序段的循环次数是( )。
A.2次
B.无限次
C.0 次
D.1 次
答案:B
26.若以”a+”方式打开一个已存在的文件,则以下叙述正确的是( )。
A.文件打开时,原有文件内容不被删除,位置指针移到文件末尾,可作添加和读操作。
B.文件打开时,原有文件内容被删除,位置指针移到文件开头,可作重新写和读操作。
C.文件打开时,原有文件内容被删除,只可作写操作。
D.以上各种说法皆不下确。
答案:A
27.main() {struct date {int year,month,day;}today; printf("%d\n",sizeof(struct date));} 以上程序的运行结果是( )
A.6
B.8
C.10
D.12
答案:D
28.C程序的执行从哪里开始( )
A.第一条语句
B.第一个函数
C.最后一个函数
D.主函数
答案:D
29.main( ) {int n=4; while(n)printf("%d ",--n); } 以上程序的输出结果是( )。
A.2 0
B.3 1
C.3 2 1 0
D.2 1 0
答案:C
30.下列函数调用中,不正确的是( )
A.max(a,b)
B.max(3,a+b)
C.max(3,5)
D.int max(a,b)
答案:D
31.若执行fopen函数时发生错误,则函数的返回值是( )
A.地址值
B.null
C.1
D.EOF
答案:B
32.fscanf函数的正确调用形式是( )。
A.fscanf(文件指针,格式字符串,输出表列)
B.fscanf(格式字符串,输出表列, fp)
C.fscanf(格式字符串,文件指针,输出表列)
D.fscanf(文件指针,格式字符串,输入表列)
答案:D
33.如果在C语言中一个int型数据在内存中占2个字节,则unsigned int型数据的取值范围为( )。
A.0~255
B.0~32 767
C.0~65 535
D.0~2 147 483 647
答案:C
34.一个源程序文件由一个或多个什么组成( )
A.语句
B.函数
C.程序块
D.子程序
答案:B
35.C语言结构体类型变量在程序执行期间( )。
A.所有成员一直驻留在内存中
B.只有一个成员驻留在内存中
C.部分成员驻留在内存中
D.没有成员驻留在内存中
答案:A
36.x=-2; y=-1; if(x!=0) if(x>0) y=1; else y=0; 该程序段的输出结果为( )。
A.1
B.0
C.-1
D.不确定
答案:B
37.下列哪个是字符写函数( )。
A.fgetc
B.fputc
C.fgets
D.fwrite
答案:B
38.printf函数中用到格式符%5s ,其中数字5表示输出的字符串占用5列。如果字符串长度大于5,则输出按方式( )
A.从左起输出该字串,右补空格
B.按原字符长从左向右全部输出
C.右对齐输出该字串,左补空格
D.输出错误信息
答案:B
39.判断字符串a是否大于b,应当使用( )
A.if (a>b)
B.if (strcmp(a,b))
C.if (strcmp(b,a)>0)
D.if (strcmp(a,b)>0)
答案:D
40.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.x+y+z=48
B.x+y+z=35
C.x+z=35
D.不确定值
答案:A
二、判断题 (共 10 道试题,共 20 分)
41.被main函数调用的函数只能是库函数。( )
答案:错误
42.在Visual C中,整型数据在内存中占2个字节。( )
答案:错误
43.对C语言中用到的任何一个变量都要规定其类型。( )
答案:正确
44.C语言中没有依存于硬件的I/O语句。( )
答案:正确
45.赋值表达式c=b=a=3是错误的。( )
答案:错误
46.C程序是由函数构成的,每一个函数完成相对独立的功能。( )
答案:正确
47.按现代风格设计的C程序中,main中对函数声明的信息与定义此函数时第一行的信息完全相同。( )
答案:正确
48.C语言采用解释方式将源程序转换为二进制的目标代码。( )
答案:错误
49.C语言中的标识符以字母或下划线开头,可跟任何字符。( )
答案:错误
50.在Visual C中,实型数据在内存中占4个字节。( )
答案:正确