C程序设计19秋在线作业1题目
试卷总分:100 得分:100
一、单选题 (共 20 道试题,共 60 分)
1.有以下程序 main() { int a[10]={1,2,3,4,5,6,7,8,9,10}, *p=&a[3], *q=p+2; printf(“%d\n”, *p + *q); } 程序运行后的输出结果是()
A.16
B.10
C.8
D.6
2.fseek(fd,-10L,1)中的fd和1分别为()
A.文件指针,文件的开头
B.文件指针,文件的当前位置
C.文件号,文件的当前位置
D.文件号,文件的开头
3.若有下面的变量定义, int i,a[10],*p;以下语句中合法的是()
A.p=a+2;
B.p=a[5];
C.p=a[2]+2;
D.p=&(i+2);
4.设有如下定义: char *aa[2]={“abcd”,”ABCD”}; 则以下说法中正确的是()
A.aa数组成元素的值分别是”abcd”和ABCD”
B.aa是指针变量,它指向含有两个数组元素的字符型一维数组
C.aa数组的两个元素分别存放的是含有4个字符的一维字符数组的首地址
D.aa数组的两个元素中各自存放了字符’a’和’A’的地址
5.表达式0x13&0x17的值是()
A.0x17
B.0x13
C.0xf8
D.0xec
6.以下程序运行后, int func(char *str) { int num=0; while(*(str+num)!=’\0′) num++; return(num); } main() { char str[10],*p=str; gets(p); printf(“%d\n”,func(p)); } 如果从键盘上输入ABCDE<回车>,则输出结果为()
A.8
B.7
C.6
D.5
7.C语言要建立一个二进制文件应选择的打开方式是()
A.”r”
B.”w”
C.”rb”
D.”wb”
8.以下程序: #define ADD(x) x*x main( ) { int a=4,b=6,c=7,d=ADD(a+b)*c; printf(“d=%d”,d); } 的输出结果为()
A.d=70
B.d=80
C.d=140
D.d=700
9.设整型变量a为5,使b不为2的表达式是()
A.b=a/2
B.b=6-(–a)
C.b=a%2
D.b=a>3?2:1
10.以下程序段: ??? char str[15]=”hello!”; printf(“%d\n”,strlen(str)); 的输出结果是()
A.15
B.14
C.7
D.6
11.下列函数中不能用于对文件进行输入输出操作的是()
A.fscanf()
B.printf()
C.fgetc()
D.fputs()
12.下面选项中正确的赋值语句是(设 char a[5],*p=a;) ()
A.p=”abcd”;
B.a=”abcd”;
C.*p=”abcd”;
D.*a=”abcd”;
13.若有以下调用语句, main() { … int a[50],n; … fun(n, &a[9]); } 则不正确的fun函数的首部是()
A.void fun(int m, int x[])
B.void fun(int s, int h[41])
C.void fun(int p, int *s)
D.void fun(int n, int a)
14.在C语言中,字符型数据在内存中是以什么形式存放的?()
A.原码
B.BCD码
C.反码
D.ASCII码
15.以下叙述中不正确的是()
A.在不同的函数中可以使用相同名字的变量
B.函数中的形式参数是局部变量
C.在一个函数内定义的变量只在本函数范围内有效
D.在一个函数内的复合语句中定义的变量在本函数范围内有效
16.在C程序中有如下语句:char *func(int x,int y); 它是()
A.对函数func的定义。
B.对函数func的调用。
C.对函数func的原型说明。
D.不合法的。
17.若有说明: int i,j=7, *p=&i;, 则与i=j; 等价的语句是()
A.i= *p;
B.*p=j;
C.i=&j;
D.i=* *p;
18.有以下程序: main() { char a1=’M’, a2=’m’; printf(“%c\n”, (a1, a2) ); } 以下叙述中正确的是 ()
A.程序输出大写字母M
B.程序输出小写字母m
C.格式说明符不足,编译出错
D.程序运行时产生出错信息
19.有以下程序 fun(int a, int b) { if(a>b) return(a); else return(b); } main() { int x=3, y=8, z=6, r; r=fun (fun(x,y), 2*z); printf(“%d\n”, r); } 程序运行后的输出结果是()
A.3
B.6
C.8
D.12
20.有以下程序: main() { char a1=’M’, a2=’m’; printf(“%c\n”, (a1, a2) ); } 以下叙述中正确的是 ()
A.程序输出大写字母M
B.程序输出小写字母m
C.格式说明符不足,编译出错
D.程序运行时产生出错信息
二、判断题 (共 20 道试题,共 40 分)
21.循环可以并列,但不可以嵌套。
22.程序段if (u>s) t=u; t=s;的功能是将u,s中的最大值赋给变量t。
23.a==b;的功能是将b的值赋给a。
24.’ab’是合法的字符型常量。
25.C程序是以源程序文件为单位进行编译的。
26.从循环体中退出只能使用goto语句。
27.如果一个函数不需要参数,则函数名后的括号可以省略。
28.若有宏定义:#define PI 3.14i5926,则系统预编译时会报错。
29.019是一个合法的整型常量。
30.二维数组中元素排列的顺序是:按行存放,即在内存中先顺序存放第一行的元素,再存放第二行的元素。
31.允许定义无名结构,但是它只能在定义结构类型时定义一次结构变量。
32.通过return语句,函数可以带回一个或一个以上的返回值。
33.若有形参定义:int a[10];则a++是合法的表达式。
34.假设有int? a[10],? *p;?? 则p=&a[0]与p=a等价。
35.getchar()函数的功能是从键盘上输入一个字符串。
36.strlen是求字符串长度的函数。
37.当C的值不为0时,(A=C)&&(B=C)能正确地将C的值赋给变量A,B。
38.break语句用在循环体中,可结束本层循环,continue语句用在循环体中,可结束本次循环。
39.定义在main函数后的任何函数都需在main中进行函数声明。
40.一个C程序可以包含多个函数,但只能有一个main()函数。