吉大13秋《C语言程序设计》在线作业答案
吉大13秋《C语言程序设计》在线作业一试卷总分:100 测试时间:--
一、单选题(共10道试题,共40分。)
1.设有数组定义: char array[]="China"; 则数组 array所占的空间为
A. 4个字节B. 5个字节
C. 6个字节D. 7个字节
满分:4分
2.请选出以下语句的输出结果 printf("%d\n",strlen("\t\"\065\xff\n"));
A. 5B. 14
C. 8D. 输出项不合法,无正常输出
满分:4分
3.
以下程序的输出结果是
#include "stdio.h"
void reverse(int a[],int n)
{
int i,t;
for(i=0;i<n/2;i++){
t=a;
a=a;
a=t;
}
}
main(){
int b={1,2,3,4,5,6,7,8,9,10};
int i,s=0;
reverse(b,8);
for(i=6;i<10;i++) s+=b;
printf("%d\n",s);
}
A. 22
B. 10
C. 34
D. 30
满分:4分
4.假定以下程序经编译和连接后生成可执行文件PROG.EXE,如果在此可执行文件所在目录的DOS提示符下键入: PROG ABCDEFGH IJKL<回车>,则输出结果为 main( int argc, char *argv[]) { while(--argc>0) printf("%s",argv[argc]); printf("\n"); }
A. ABCDEFG
B. IJHL
C. ABCDEFGHIJKL
D. IJKLABCDEFGH
满分:4分
5.设有int x=11;则表达式(x++*1/3)的值是
A. 3
B. 4
C. 11
D. 12
满分:4分
6.C语言允许函数类型缺省定义,此时函数值隐含的类型是
A. float
B. int
C. long
D. double
满分:4分
7.下面程序的功能是把316表示为两个加数的和,使两个加数分别能被13和11整除,请选择填空。 #include "stdio.h"main(){ int i=0,j,k;do{i++;k=316-13*i;}while(k%11);j=k/11;printf("316=13*%d+11*%d",i,j);}
A. k%11
B. k
C. k/11==0
D. k==0
满分:4分
8.下面程序的运行结果是 #include main() { int a=1,b=10; do {b-=a;a++;}while(b--<0); printf("a=%d,b=%d\n",a,b); }
A. a=3,b=11
B. a=2,b=8
C. a=1,b=-1
D. a=4,b=9
满分:4分
9.下面程序的运行结果是 #include main() { int y=10; do{y--;}while(--y); printf("%d\n",y--); }
A. 1
B. 1
C. 8
D. 0
满分:4分
10.下列程序的输出结果是 int b=2; int func(int *a) { b += *a; return(b);} main() { int a=2, res=2; res += func(&a); printf("%d\n",res); }
A. 4
B. 6
C. 8
D. 10
满分:4分
二、多选题(共5道试题,共20分。)
1.在C语言中,正确的int类型的常数是:______。
A. 0
B. 32768
C. 037
D. 0xaf
满分:4分
2.下列字符中能构成标识符的是______。
A. 数字字符
B. 连接符
C. 下划线字符
D. 大写字母
满分:4分
3.关于宏定义的说法正确的是:
A. <p>宏名一般习惯用大写字母表示,以便与变量名相区别</p>
B. 使用宏名代替一个字符串,可以减少程序中重复书写某些字符串的工作量
C. 宏定义是用宏名代替一个字符串,也就是简单的置换,不作正确性检查
D. 宏定义不是C语句,不必在行末加分号
满分:4分
4.关于静态局部变量的说明正确的是______。
A. 静态局部变量存储在静态存储区
B. 静态局部变量是在编译时赋初值的,即只赋一次值,在程序运行时它已有初值
C. 若在定义局部变量时不赋初值,则编译时自动赋初值为0或空字符
D. 虽然静态局部变量在函数调用结束后仍然存在,但其他函数是不能引用它的
满分:4分
5.带参宏定义与函数的区别是:______。
A. 函数调用时,先求出实参表达式的值,然后代入形参,带参的宏只是进行简单的字符替换
B. 函数调用是在程序运行时为形参分配临时的存储单元,而宏展开是在编译前进行的
C. 宏不存在类型问题,宏名和参数都不存在类型问题
D. 调用函数只能得到一个返回值,而使用宏可设法得到几个结果
满分:4分
三、判断题(共10道试题,共40分。)
1.函数必须有返回值,否则不能使用函数
A. 错误
B. 正确
满分:4分
2.C程序的执行总是从第一个定义的函数开始
A. 错误
B. 正确
满分:4分
3.putchar()函数可以输出一个字符串
A. 错误
B. 正确
满分:4分
4.主函数和其它函数可以相互调用
A. 错误
B. 正确
满分:4分
5.一个int型与一个double型数据进行混合运算时,其结果是double型。
A. 错误
B. 正确
满分:4分
6.C语言中,整常数有三种表示形式:十进制整数,八进制整数,十六进制整数。( )
A. 错误
B. 正确
满分:4分
7.宏名必须用大写字母表示。
A. 错误
B. 正确
满分:4分
8.C程序中各函数之间既允许直接递归调用也允许间接递归调
A. 错误
B. 正确
满分:4分
9.C语言编译系统在给出逻辑运算结果时,以数值1代表真,以0代表假,但在判断一个量是否为“真”时,以0代表假,以非0代表真。( )
A. 错误
B. 正确
满分:4分
10.静态外部变量既可以在文本文件中引用,也可以在其它文件引用
吉大《C语言程序设计》在线作业二
试卷总分:100 测试时间:--
一、单选题(共10道试题,共40分。)
1.有如下程序 int a[10]={1,2,3,4,5,6,7,8,9,10}; int *p=&a[3],b;b=p[5]; 则b的值是
A. 5B. 6
C. 9D. 8
满分:4分
2.执行以下程序后,a,b的值分别为 main() { int a,b,k=4,m=6,*p1=&k,*p2=&m; a=p1==&m; b=(*p1)/(*p2)+7; printf("a=%d\n",a); printf("b=%d\n",b); }
A. -1,5B. 1,6
C. 0,7D. 4,10
满分:4分
3.若已定义: int a[]={0,1,2,3,4,5,6,7,8,9}, *p=a,i; 其中 0≤i≤9, 则对a数组元素不正确的引用是
A. a[p-a]B. *(&a[i])
C. p[i]D. a[10]
满分:4分
4.设有定义:int n=0,*p=&n,**q=&p,则下列选项中正确的赋值语句是
A. p=1;
B. *q=2;
C. q=p;
D. *p=5;
满分:4分
5.有如下程序: long fib(int n) { if(n>2)return(fib(n-1)+fib(n-2)); else return(2); } main() { printf("%d\n",fib(3));} 该程序的输出结果是
A. 2
B. 4
C. 6
D. 8
满分:4分
6.C语言中,能识别处理的文件为
A. 文本文件和数据块文件
B. 文本文件和二进制文件
C. 流文件和文本文件
D. 数据文件和二进制文件
满分:4分
7.函数 rewind 的作用是
A. 使文件位置指针重新返回文件的开始位置
B. 将文件位置指针指向文件中所要求的特定位置
C. 使文件位置指针指向文件的末尾
D. 使文件位置指针自动移至下一个字符位置
满分:4分
8.有以下程序: #include union pw { int i; char ch[2];}a; main() {a.ch[0]=13;a.ch[1]=0;printf("%d\n",a.i);} 程序的输出结果是
A. 13
B. 14
C. 208
D. 209
满分:4分
9.在16位C编译系统上,若定义long a;,则能给a赋40000的正确语句是
A. a=20000+20000;
B. a=4000*10;
C. a=30000+10000;
D. a=4000L*10L
满分:4分
10.以下程序有语法错误,有关错误原因的正确说法是 main() { int G=5,k; void prt_char(); ... k=prt_char(G); ... }
A. 语句 void prt_char();有错,它是函数调用语句,不能用void说明
B. 变量名不能使用大写字母
C. 函数说明和函数调用语句之间有矛盾
D. 函数名不能使用下划线
满分:4分
二、多选题(共5道试题,共20分。)
1.以下叙述中正确的是______。
A. 对于double类型数组,不可以直接用数组名对数组进行整体输入或输出
B. 当程序执行中,数组元素的下标超出所定义的下标范围时,系统将给出“下标越界”的出错信息
C. 可以通过赋初值的方式确定数组元素的个数
D. 数组名代表的是数组所占存储区的首地址,其值不可改变
满分:4分
2.已知:int x,a,b;下列选项中正确的if语句是______。
A. if(a=b) x++;
B. if(a=<b) x++;
C. if(a-b) x++;
D. if(x) x++;
满分:4分
3.在文件操作中,用于检测和设置文件状态的函数有______。
A. 文件结束检测函数feof()
B. 读写文件出错检测函数ferror()
C. 文件出错和结束标志文件函数才clearerr()
D. 文件关闭函数fclose()
满分:4分
4.下列描述正确的是
A. 由main 函数及其参数argc和* argv[]可以实现命令行方式
B. 使用fclose关闭文件时,先释放文件指针,再写缓冲区数据到文件中
C. 字符数组并不要求它的最后一个字符是‘\0’
D. ‘A’和“A”都是字符串常量
满分:4分
5.不与while(x)语句中的x等价的是_____。
A. x= =0
B. x= =1
C. x!=1
D. x!=0
满分:4分
三、判断题(共10道试题,共40分。)
1.对于double类型数组,不可以直接用数组名对数组进行整体输入或输出。
A. 错误
B. 正确
满分:4分
2.若打开文件的方式为“w”而该文件已经存在,则文件中原有数据被清除。
A. 错误
B. 正确
满分:4分
3.puts和gets函数只能输入或输出一个字符串
A. 错误
B. 正确
满分:4分
4.for(;;)语句相当于while(1)语句
A. 错误
B. 正确
满分:4分
5.数据结构指的是数据的组织形式,数组就是一种数据结构( )
A. 错误
B. 正确
满分:4分
6.switch语句中,多个case可以共用一组执行语句。( )
A. 错误
B. 正确
满分:4分
7.共用体所占的内存空间大小取决于占空间最多的那个成员变量。
A. 错误
B. 正确
满分:4分
8.switch语句中,各个case和default的出现次序不影响执行结果。( )
A. 错误
B. 正确
满分:4分
9.模运算符要求两侧均应为整型数据。( )
A. 错误
B. 正确
满分:4分
10.语句int pt中的*pt是指针变量名。
A. 错误
B. 正确
满分:4分
页:
[1]