吉大18秋学期《C语言程序设计》在线作业一答案满分答案
吉大17秋学期《C语言程序设计》在线作业一-0005
试卷总分:100 得分:0
一、 单选题 (共 10 道试题,共 40 分)
1.有以下程序: #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
2.设有以下语句: char x=3,y=6,z; z=x^y<<2; 则z的二进制值是
A.00010100
B.00011011
C.00011100
D.00011000
3.下列程序的输出结果是 main() { double d=3.2; int x,y; x=1.2; y=(x+3.8)/5.0; printf("%d\n", d*y); }
A.3
B.3.2
C.0
D.3.07
4.以下叙述中不正确的是
A.在不同的函数中可以使用相同的名字的变量
B.函数中的形式参数是局部变量
C.在一个函数内定义的变量只在本函数范围内有效
D.在一个函数内的复合语句中定义的变量在本函数范围内有效
5.下面程序的功能是把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
6.在16位IBM-PC机上使用C语言,若有如下定义 struct data { int i; char ch; double f; } b; 则结构变量b占用内存的字节数是
A.1
B.2
C.7
D.11
7.
以下程序的输出结果是
#include "stdio.h"
void reverse(int a[],int n)
{
int i,t;
for(i=0;i<n/2;i++){
t=a[i];
a[i]=a[n-1-i];
a[n-1-i]=t;
}
}
main(){
int b[10]={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[i];
printf("%d\n",s);
}
A.22
B.10
C.34
D.30
8.以下程序有错,错误原因是 main() { int *p,i;char *q,ch; p=&i; q=&ch; *p=40; *p=*q; ...... }
A.p和q的类型不一致,不能执行*p=*q;语句
B.*p中存放的是地址值,因此不能执行*p=40;语句
C.q没有指向具体的存储单元,所以*q没有实际意义
D.q虽然指向了具体的存储单元,但该单元中没有确定的值,所以执行*p=*q;没有意义,可能会影响后面语句的执行结果
9.函数 rewind 的作用是
A.使文件位置指针重新返回文件的开始位置
B.将文件位置指针指向文件中所要求的特定位置
C.使文件位置指针指向文件的末尾
D.使文件位置指针自动移至下一个字符位置
10.阅读以下程序及对程序功能的描述,其中正确的描述是 #include main() { FILE *in,*out; char ch,infile[10],outfile[10]; printf("Enter the infile name:\n"); scanf("%s",infile); printf("Enter the outfile name:\n"); scanf("%s",outfile); if((in=fopen(infile,"r"))==NUL
A.程序完成将磁盘文件的信息在屏幕上显示的功能
B.程序完成将两个磁盘文件合二为一的功能
C.程序完成将一个磁盘文件复制到另一个磁盘文件中
D.程序完成将两个磁盘文件合并并在屏幕上输出
吉大18秋学期《C语言程序设计》在线作业一答案多选题答案
二、 多选题 (共 5 道试题,共 20 分)
1.C提供的预处理功能主要有______。
A.宏定义
B.文件包含
C.条件编译
D.异常终止
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++;
3.以下说法不正确的是______。
A.定义函数时,形参的类型说明可以放在函数体内
B.return后边的值不能为表达式
C.如果函数值的类型与返回值表达式的类型不一致,以函数值类型为准
D.如果形参与实参的类型不一致,以实参类型为准
4.以下叙述中正确的是______。
A.对于double类型数组,不可以直接用数组名对数组进行整体输入或输出
B.当程序执行中,数组元素的下标超出所定义的下标范围时,系统将给出“下标越界”的出错信息
C.可以通过赋初值的方式确定数组元素的个数
D.数组名代表的是数组所占存储区的首地址,其值不可改变
5.下列关于#include命令的叙述中,正确的是______。
A.一个#include命令中只能指定一个被包含文件
B.一个#include命令中可以指定多个被包含文件
C.一个被包含文件中又可以包含另一个被包含文件
D.#include命令中,文件名可以用双引号或尖括号括起来
三、 判断题 (共 10 道试题,共 40 分)
1.puts和gets函数只能输入或输出一个字符串
A.错误
B.正确
2.主函数和其它函数可以相互调用
A.错误
B.正确
3.使用printf和scanf函数时,必须添加#include <stdio.h>命令。( )
A.错误
B.正确
4.switch语句中,多个case可以共用一组执行语句。( )
A.错误
B.正确
5.调用函数只可得到一个返回值,而用宏可以设法得到几个结果。
A.错误
B.正确
6.数据结构指的是数据的组织形式,数组就是一种数据结构( )
A.错误
B.正确
7.C程序中各函数之间既允许直接递归调用也允许间接递归调
A.错误
B.正确
8.静态外部变量既可以在文本文件中引用,也可以在其它文件引用
A.错误
B.正确
9.C程序的执行总是从第一个定义的函数开始
A.错误
B.正确
10.若打开文件的方式为“w”而该文件已经存在,则文件中原有数据被清除。
A.错误
B.正确
吉大18秋学期《C语言程序设计》在线作业一答案历年参考题目如下: