“C语言”课程终结考试
模拟题
课程编号:BWCST2010                  学籍号:____________________
学习中心:________________            姓  名:____________________
注意事项:1、本试卷满分100分,考试时间120分钟;
2、本试卷为闭卷考试,请将答案一律写在答题纸上。
一、选择题(每题1分,共40分)
1.以下叙述中正确的是    )。
(A) 用C程序实现的算法必须要有输入和输出操作
(B) 用C程序实现的算法可以没有输出但必须要有输入
(C) 用C程序实现的算法可以没有输入但必须要有输出
(D) 用C程序实现的算法可以既没有输入也没有输出
2.以下叙述中错误的是    )。
(A) 对于double类型数组, 不可以直接用数组名对数组进行整体输入或输出
(B) 数组名代表的是数组所占存储区的首地址, 其值不可改变
(C) 当程序执行中, 数组元素的下标超出所定义的下标范围时, 系统将给出“下标越界”的出错信息
(D) 可以通过赋初值的方式确定数组元素的个数
3.以下叙述中错误的是    )。
(A)用户所定义的标识符允许使用关键字
(B)用户所定义的标识符应尽量做到“见名知意”
(C)用户所定义的标识符必须以字母或下划线开头
(D)用户定义的标识符中,大、小写字母代表不同标识
4.若有语句:char *line[5];,以下叙述中正确的是    )。
(A)定义line是一个数组,每个数组元素是一个基类型为char的指针变量
(B)定义line是一个指针变量,该变量可以指向一个长度为5的字符型数组
(C)定义line是一个指针数组,语句中的*号称为间址运算符
(D)定义line是一个指向字符型函数的指针
5.以下不能正确计算代数式值的C语言表达式是    )。
(A)1/3*sin(1/2)*sin(1/2)            (B)sin(0.5)*sin(0.5)/3
(C)pow(sin(0.5),2)/3                (D)1/3.0*pow(sin(1.0/2),2)
6.以下叙述中错误的是    )。
(A)C语言中对二进制文件的访问速度比文本文件快
(B)C语言中,随机文件以二进制代码形式存储数据
(C)语句 FILE fp; 定义了一个名为fp的文件指针
(D)C语言中的文本文件以ASCII码形式存储数据
7.以下叙述中正确的是    )。
(A) C语言中的文件是流式文件,因此只能顺序存取数据
(B) 打开一个已存在的文件并进行了写操作后,原有文件中的全部数据必定被覆盖
(C) 在一个程序中当对文件进行了写操作后,必须先关闭该文件然后再打开,才能读到第1个数据
(D) 当对文件的读(写)操作完成之后,必须将它关闭,否则可能导致数据丢失
8.若有定义:int w[3][5]; ,则以下不能正确表示该数组元素的表达式是    )。
(A) *(*w+3) 
(B) *(w+1)[4] 
(C) *(*(w+1)) 
(D) *(&w[0][0]+1)
9.若有定义语句:int k[2][3],*pk[3];,则以下语句中正确的是    )。
(A) pk=k; 
(B) pk[0]=&k[1][2]; 
(C) pk=k[0]; 
(D) pk[1]=k;
10.若要求定义具有10个int型元素的一维数组a,则以下定义语句中错误的是    )。
(A) #define N 10
  int a[N];
(B) #define n 5
  int a [2*n];
(C) int a[5+5];
(D) int n=10,a[n];
11.有以下程序
main()
{
    char  s[]={"aeiou"},*ps;
ps=s;
printf("%c\n",*ps+4);
}
程序运行后的输出结果是    )。
(A)
(B)
c语言编写递归函数(C)
(D) 元素s[4]的地址
12.要求通过while循环不断读入字符,当读入字母N时结束循环。若变量已正确定义,以下正确的程序段是    )。
(A) while((ch=getchar())!='N')printf("%c",ch);
(B) while(ch=getchar()!='N')printf("%c",ch);
(C) while(ch=getchar()=='N')printf{"%c",ch);
(D) while((ch=getchar())=='N')printf("%c",ch);
13.设fp为指向某二进制文件的指针,且已读到此文件末尾,则函数feof(fp)的返回值为    )。
(A) EOF 
(B) 非0值 
(C)
(D) NULL
14.有以下程序
main()
{
    int y=10;
    while(y - -); printf("y=%d\n",y);
}
程序执行后的输出结果是    )。
(A) y=0 
(B) y=-1 
(C) y=1 
(D) while构成无限循环
15.以下叙述中错误的是    )。
(A) 可以通过typedef增加新的类型 
(B) 可以用typedef将己存在的类型用一个新的名字来代表
(C) 用typedef定义新的类型名后,原有类型名仍有效
(D) 用typedef可以为各种类型起别名,但不能为变量起别名
16.以下关于简单程序设计的步骤和顺序的说法中正确的是    )。
(A)确定算法后,整理并写出文档,最后进行编码和上机调试
(B)首先确定数据结构,然后确定算法,再编码,并上机调试,最后整理文档
(C)先编码和上机调试,在编码过程中确定算法和数据结构,最后整理文档
(D)先写好文档,再根据文档进行编码和上机调试,最后确定算法和数据结构
17.下列叙述中正确的是    )。
(A) 软件测试应该由程序开发者来完成 
(B) 程序经调试后一般不需要再测试
(C) 软件维护只包括对程序代码的维护 
(D) 以上三种说法都不对
18.下列选项中不属于结构化程序设计方法的是    )。
(A) 自顶向下 
(B) 逐步求精 
(C) 模块化 
(D) 可复用
19.设有以下语句
int a=1,b=2,c;
c=a^(b<<2);
执行后,c的值为    )。
(A) 6 
(B) 7 
(C) 8 
(D) 9
20.若有代数式(其中e仅代表自然对数的底数,不是变量),则以下能够正确表示该代数式的C语言表达式是(    )。
(A) sqrt(abs(n^x+e^x)) 
(B) sqrt(fabs(pow(n,x)+pow(x,e)))
(C) sqrt(fabs(pow(n,x)+exp(x)))   
(D) sqrt(fabs(pow(x,n)+exp(x)))
21.有以下程序,其中%u表示按无符号整数输出
main()
{
    unsigned int x=0xFFFF; /* x的初值为十六进制数 */
  printf("%u\n",x);
}
程序运行后的输出结果是(    )。
(A-1 
(B65535 
(C32767 
(D0xFFFF
22.以下选项中,当x为大于1的奇数时,值为0的表达式(    )。
(A)  x%2==1    (B)  x/2      (Cx%2!=0    (D)  x%2==0
23.以下合法的字符型常量是(    )。
(A) '\x13' 
(B) '\018'   
(C) "65"
(D) "\n"
24.已知大写字母AASCII码是65,小写字母aASCII码是97,以下不能将变量c中大写字母转换为对应小写字母的语句是(    )。
(A) c=(c-A)%26+'a'   
(B) c=c+32
(C) c=c-'A'+'a'   
(D) c=('A'+c)%26-'a'
25.已知字符'A'的ASCⅡ代码值是65,字符变量c1的值是'A',c2的值是'D'。执行语句printf("
%d,%d",c1,c2-2);后,输出结果是(    )。
(A)A,B      (B)A,68      (C)65,66      (D)65,68

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。