C程序设计2022年秋学期在线作业1
共40道题 总分: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()
东师答案请进:opzy.net或请联系微信:1095258436
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分)
1.循环可以并列,但不可以嵌套。
A、错误
B、正确
2.程序段if (u>s) t=u; t=s;的功能是将u,s中的最大值赋给变量t。
A、错误
B、正确
3.a==b;的功能是将b的值赋给a。
A、错误
B、正确
4.’ab’是合法的字符型常量。
A、错误
B、正确
5.C程序是以源程序文件为单位进行编译的。
A、错误
B、正确
6.从循环体中退出只能使用goto语句。
A、错误
B、正确
7.如果一个函数不需要参数,则函数名后的括号可以省略。
A、错误
B、正确
8.若有宏定义:#define PI 3.14i5926,则系统预编译时会报错。
A、错误
B、正确
9.019是一个合法的整型常量。
A、错误
B、正确
10.二维数组中元素排列的顺序是:按行存放,即在内存中先顺序存放第一行的元素,再存放第二行的元素。
A、错误
B、正确
11.允许定义无名结构,但是它只能在定义结构类型时定义一次结构变量。
A、错误
B、正确
12.通过return语句,函数可以带回一个或一个以上的返回值。
A、错误
B、正确
13.若有形参定义:int a[10];则a++是合法的表达式。
A、错误
B、正确
14.假设有int a[10], *p; 则p=&a[0]与p=a等价。
A、错误
B、正确
15.getchar()函数的功能是从键盘上输入一个字符串。
A、错误
B、正确
16.strlen是求字符串长度的函数。
A、错误
B、正确
17.当C的值不为0时,(A=C)&&(B=C)能正确地将C的值赋给变量A,B。
A、错误
B、正确
18.break语句用在循环体中,可结束本层循环,continue语句用在循环体中,可结束本次循环。
A、错误
B、正确
19.定义在main函数后的任何函数都需在main中进行函数声明。
A、错误
B、正确
20.一个C程序可以包含多个函数,但只能有一个main()函数。
A、错误
B、正确