贵州大学2010-2011学年第一学期考试试卷 A
高级语言程序设计
注意事项:
1. 请考生按要求在试卷装订线内填写姓名、学号和年级专业。 2. 请仔细阅读各种题目的回答要求,在规定的位置填写答案。 3. 不要在试卷上乱写乱画,不要在装订线内填写无关的内容。 4. 满分100分,考试时间为120分钟。 题 号 得 分 得 分 评分人
一、选择题(共30分,每小题2分)
一 二 三 四 五 总 分 统分人 1. 程序经过编译生成的是( B )。
A、源文件 B、目标文件 C、可执行文件 D、编译文件
2. 在一个C程序中( C )。
A、main函数出现在所有函数之前。C程序不一定都有main函数。
B、main函数必须出现在所有函数之后。一个C程序必须有且仅有一个main函数。 C、main函数可以在任何地方出现。一个C程序必须有且仅有一个main函数。 D、main函数出现在固定位置。一个C程序可以有多个main函数。
3. 已知三角形的底为a,高为b,用C语言书写正确的面积公式为( B )。 A、 1/2*a*b B、 1.0/2*a*b C、 1.0/2.0ab D、 1.0/2*ab 4.可用作用户标识符的一组标识是( C )。 A、void define B、a3-3 _123 C、For _abc D、2a sizeof
5. 已知int i=3,j=5; float x=2.5; double y=5.0;则y+=i-=j*=++x;的值为( C )。 A、 -9.5 B、 -9 C、 -9.0 D、-7.0 6.设 x=011; 执行printf (“%d”, x); 的输出是( B )。 A、11 B、9 C、8 D、7 7. 语句if (!i ) i++; 中的条件表达式 !i 等价于( )。 A、i=0 B、i!=1 C、i!=0 D、-i
8. 设int a=4; 则表达式a<1&&--a>1的运算结果和a的值分别是( B )。 A、0和3 B、0和4 C、1和3 D、1和4 9. 若有以下语句
第1页(共6页)
int x = 3; do {
printf(\} while (!(--x)); 运行后输出( B )。
A、1 B、1和-2 C、3和0 D、死循环,无限输出 10.以下4个关于C语言的结论中,错误的是( D )。
A、用while语句实现的循环一定可用for语句实现; B、用for语句实现的循环一定可用while语句实现;
C、用do-while语句实现的循环一定可用while语句实现;
D、do-while语句与while语句的区别仅是关键字“while”出现的位置不同; 11. 有语句int a[][3] = {1,2,3,4,5,6}; 则a[1][1]的值是( D )。
A、 1 B、2 C、4 D、5 12. 判断字符串是否相等,下面语句中正确的( D )。
A、 if(str1=str2) B、 if(str1= =str2)
C、 if(strcpy(str1,str2)) D、 if(strcmp(str1,str2)= =0) 13.有一个如下定义的函数
f(double x) {
printf(\}
则该函数的返回类型是( A )。
A、 int B、double C、void D、无法确定 14. C语言中共用体类型变量在程序执行期间( B )。
A、所有成员一直驻留在内存中 B、只有一个成员驻留在内存中 C、部分成员驻留在内存中 D、没有成员驻留在内存中
15. 假设有int a[3][5]; 下列选项中,指向元素a[2][3]的指针是( C )。
A、*(a[2]+3) B、(*a+2)+3 C、*(a+2)+3 D、*(*(a+2)+3)
得 分 二、填空题(共10分,每空1分)
评分人
1.C语言中普通整型变量的类型说明符为 int ,在内存中占 2 字节,有符号普通整型的数据范围是 -32768—32767 。 2.若有定义:enum xx
{ a, b, c=8,d };
则b的值为 1 ,d的值为 9 。
3.利用scanf语句读入一个长整型变量的值,需要用到的格式控制符为 。 4.若有定义:int x[][3]= {20, 40, 60, 80, 100, 120}, *p=x; 则数组元素*(p+4) 的值为 ,*p+4的值为 。 5.已知union data{int i; char c; float f;}a; 则变量a占用的存储空间大小为 字节。
第2页(共6页)
6. 有定义:static int a[][3]={1,2,3,4,0,5,8,9,10};,则printf(”%d”,*(*(a+1)+2));语句的输出结果为 。 三、程序阅读题(共12分,每小题3分) 评分人
1. 读下列程序,写出程序的输出结果。
main( )
{ int a=0,b=4,c
c=(++a>1)&&(b++>=3);
printf(\
}
输出结果为:
2.读下列程序,写出程序的输出结果。
main()
{ int a;
for ( a=0; a<3; a++ ) switch (a)
{case 1: printf (\case 2: printf (\default: printf (\}
}
输出结果为:
3.读下列程序,写出程序的输出结果。
#include
int x[12]= {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12}; int *p;
for (p=&x[3];p } 输出结果为: 4.运行以下程序,若输入:5 7<回车>时,写出程序的输出结果。 #include void fun1(int *p1, int *p2) 得 分 第3页(共6页) { int t; t=*p1; *p1=*p2; *p2=t; } void fun2(int x,int y) { int t; t=x; x=y; y=t; } void main() { int x,y; int *p1,*p2; scanf(\p1=&x; p2=&y; if(x printf(\if(x>y) fun2(x,y); printf(\} 输出结果为: 得 分 评分人 1. 将输入的字符串按逆序打印出来,例如输入abcd,则按dcba顺序打印出来。 #include { char *str,s[20]; int n; str= (1) ; scanf(“%s”,(2) ); n=strlen( str); while(--n>=0) { str=&s[(3) ]; Printf(“%c”,*str); } } 2.以下程序完成的功能是:将一个字符数组中存储的字符串复制到另一个字符数组中然后输出,不使用strcpy函数,请将程序中的空白填写完整。 #include char s[MAX]=\ 四、程序填空题(共18分,每空2分) 第4页(共6页)
相关推荐: