专业班级: 姓名: 学号:
…………………………密………………………………封………………………………线…………………………
《高级语言程序设计》 试卷(补考A卷)考试方式:闭卷 本试卷考试分数占学生总评成绩的 70 %
总 分 | 题号 | 一 | 二 | 三 | 四 | |
核分人 | 题分 | |||||
复查人
得分 | 评卷人 |
一、单项选择题(每题2分,共50分) 在每小题列出的四个选项中只有一个选项是符合题目要求的,请将正确选项前的字母填在题后的下划线“ ”上。
1.以下定义语句中正确的是 。
A) char a='A' b='B'; B) float a=b=10.0;
C) int a=10, *b=&a; D) float *a, b=&a;
2.在C语言中,合法的字符常量是 。
A) '\084' B) '\x43' C) 'ab' D) "\0"
3.在C语言中,字符型(char)数据在内存中存放的形式为 。
A)BCD码 B)原码 C)补码 D)ASCII码
4.若有定义:int a=8, b=5, c; 执行语句c = a/b+0.4 ;后,c的值为 。
A) 1.4 B) 1 C) 2.0 D) 2
5.下列语句行中,哪些语句能正确进行字符串赋值操作 。
A) char st[4][5]
B) char s[5]={'A', 'B', 'C', 'D', 'E'};
C) char *s; s = "ABCDE";
D) char *s; scanf("%s", s);
6.若int x=3;且有下面的程序片断,则输出结果是 。
A)1 B)3 0 C)1 -2 D)死循环
do
{ printf("%d ",x-=2);
}while(!(--x));
7.以下C语言中,对函数不正确的描述是 。
A) 当用数组名作形参时,形参数组改变可使实参数组随之改变
B) 允许函数递归调用
C) 函数形参的作用范围只是局限于所定义的函数内
D) 函数说明必须在主调函数之前
8.若w=1,x=2,y=3,z=4;则条件表达式w>x?w:y<z?y:z的结果是
A)4 B)3 C)2 D)1
9.以下程序的输出结果是 。
#include <stdio.h>
void main(void)
{ int a = 5, b = 4, c = 6, d;
printf(“%d\n”, d=a>b?(a>c?a: c): b);
}
A) 5 B) 4 C) 6 D) 不确定
10.若变量a 是int 类型,并执行了语句a = ‘A’+1.6;后,则正确的叙述是 。
A) a的值是字符‘C’
B) a的值是浮点型
C) a的值是字符’A’的ASCII值加1
D) 不允许字符型和浮点型相加
11.以下不是死循环的语句是 。
A)for(;;x+=i); B)while(1){x++;}
C)for(i=10;;i--) D)for(;(c=getchar())!='\n';)
12.下列程序的输出结果是 。
A)13;1 B)14;4 C)11;1 D)10;0
main()
{ int a=10, b=0;
if(a=12)
{ a=a+1; b=b+1;
}else
{ a=a+4;b=b+4; }
printf("%d,%d\n",a,b);
}
13.下面关于字符串的说明中,错误的是
A)char str[7]="FORTRAN"; B)char str[]="FORTRAN";
C)char *str="FORTRAN";
D)char str[]={'F','O','R','T','R','A','N'}
14.已知:int a[10];则对a数组元素的正确引用是
A)a[10] B)a[3.5] C)a(5) D)a[10-10]
15.在C语言中
A)不能使用do-while语句构成的循环
B)do-while语句构成的循环必须用break语句才能退出
C)do-while语句构成的循环,当while语句中的表达式值为非零时结束循环
D)do-while语句构成的循环,当while语句中的表达式值为零时结束循环
16.下列程序的输出结果是
A)13 B)15 C)11 D)12
#define FUDGE(y) 1.2+y
#define PR(a) printf("%d",(int)(a))
main()
{ int x=2;
PR(FUDGE(5)*x);
}
17.C语言中的函数
A)可以嵌套定义 B)不可以嵌套调用
C)可以嵌套调用,但不能递归调用 D)c语言字符常量有哪些嵌套调用和递归调用均可
18.下列条件语句中,功能与其他语句不同的是 。
A) if(a) printf("%d\n",x); else printf("%d\n",y);
B) if(a==0) printf("%d\n",y); else printf("%d\n",x);
C) if (a!=0) printf("%d\n",x); else printf("%d\n",y);
D) if(a==0) printf("%d\n",x); else printf("%d\n",y);
19.以下函数调用语句中含有的实参个数是 。
func((exp1,exp2),(exp3,exp4,exp5));
A) 1 B) 2 C) 4 D) 5
20.以下函数的功能是
void fun(char *p2, char *p1)
{ while((*p2=*p1)!='\0') { p1++;p2++; } }
A)将p1所指字符串复制到p2所指内存空间
B)将p1所指字符串的地址赋给指针p2
C)对p1和p2两个指针所指字符串进行比较
D)检查p1和p2两个指针所指字符串中是否有'\0'
21.写字符到磁盘文件的fputc(ch,fp)函数(ch表示字符,fp表示文件指针),其函数原型(头)正确的是
A) FILE *fputc(char) B) int fputc(FILE *)
C) int fputc(char, FILE *) D) int fputc(FILE *,char)
22. 设有如下定义:
struct sk
{ int a; float b; }data,*p;
若有p=&data;,则对data中的a域的正确引用是
A)(*p).data.a B)(*p).a C)p->data.a D)p.data.a
23.已知函数原型为:
struct tree *func(int x1,int *x2,struct tree x3,struct tree *x4)
其中 tree 为已定义过的结构,且有下列变量定义:
struct tree pt,*p; int i;
请选择正确的函数调用语句
A) &pt=func(10,&i,pt,p) B) p=func(i++,&i,pt,&pt);
C) p=func(i+1,&(i+2),*p,p); D) func(i+1,&i,p,p);
24.下执行以下程序段后,变量y的值是 。
int x, y;
x = 1;
y = (++x*5);
A) 5 B) 10 C) 15 D) 20
25. 在Turbo C集成环境中,若一个源程序输入后没有错误,则按Ctrl+F9后
A)将源程序存到当前目录
B)依次产生.OBJ和.EXE文件,但不运行程序
C)依次产生.EXE和.OBJ文件,并运行程序
D)依次产生.OBJ和.EXE文件,并运行程序
得分 | 评卷人 |
二、程序填空题(每空2分,共20分)下面给出了若干个程序,请按照题意将下划线处缺少的部分补上,使其能正确运行。
26.求1!+2!+3!+……+10!
#include <stdio.h>
void main(void)
{ long s=0,m;
int i,j;
for (i=1; ; i++) {
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论