1、西南交大高级语言程序的设计客观题5一、单项选择题(只有一个选项正确,共16道小题)1.以下正确的C标识符是(A)0XH(B)_80(C)main#(D)A你选择的答案:B正确正确答案:B解答参考:2.C语言表示逻辑假的方法是(A)FALSE(B)0(C)1(D)NULL你选择的答案:B正确正确答案:B解答参考:3.能正确表达逻辑关系a10或a0的C语言表达式是(A)a=10ora=0|a=10&a=10|a=0你选择的答案:D正确正确答案:D解答参考:4.设a是int型变量,b是float型变量,用下面的语句给这两个变量输入值scanf(a=%d,b=%f,&a,&b);为了把100和76.5
2、分别赋给i和f,则正确的输入为:(A)10076.5(B)a=100,b=76.5(C)10076.5(D)a=100 b=76.5你选择的答案:B正确正确答案:B解答参考:5.若有如下说明。char a10=a,b,c,d,e,f,g,h,i,j,*p=a;则输出表达式*(p+8),即printf(%cn,*(p+8);得到(A)g(B)h(C)i(D)j你选择的答案:C正确正确答案:C解答参考:6.若有定义:inta10,*p=a;,则p+5表示(A)元素a5的地址(B)元素a5的值(C)元素a6的地址(D)元素a6的值你选择的答案:A正确正确答案:A解答参考:7.以下可作为函数fopen
3、中第一个参数的正确格式是(A)c:usertext.tex(B)c:usertext.txt(C)“c:usertext.tex”(D)“c:usertext.txt”你选择的答案:D正确正确答案:D解答参考:8.以下函数返回a所指数组中最小值元素的下标值 fun(int *a, int n) int i,j=0,p; p=j; for(i=j;in;i+)/n;i+) if(aiap)_;/ap)_; return(p); 在下划线处应填入的是。(A)i=p(B)ap=ai(C)p=j(D)p=i你选择的答案:D正确正确答案:D解答参考:9.在C语言中,能代表逻辑“真”的是_。(A)true
4、(B)大于0的数(C)非0的整数(D)非0的数你选择的答案:D正确正确答案:D解答参考:10.若有定义和语句:int a=10,b=20,*p=&a,*pp=&p;p=&b;printf(%d %dn,*p,*pp);,则输出结果是_。(A)10,20(B)10,10(C)20,10(D)20,20你选择的答案:D正确正确答案:D解答参考:11.若有定义struct int a5; b;则正确表达成员数组a的最后一个元素的地址表达式是。(A)b.a(B)b.a5(C)b.a+4(D)&(&b a4)你选择的答案:C正确正确答案:C解答参考:12.为改写磁盘文件中的数据,文件打开方式串正确的是。
5、(A)ab+(B)rb(C)wb+(D)rb+你选择的答案:D正确正确答案:D解答参考:13.若有定义int a34;以下是对该数组元素的错误引用。(A)a32(B) (a1+2)(C) ( (a+2)+3)(D) ( a+1)你选择的答案:A正确正确答案:A解答参考:14.若变量已有正确定义,程序a=0; for (i=1; i=n; i+) for (j=0; j=i; j+) a+;执行后,变量a的值是(3)。(A)n (n +1 ) / 2(B)( n + 1 ) ( n + 2 ) / 2(C)n ( n1) / 2(D)n ( n + 3 ) / 2你选择的答案:D正确正确答案:D
6、解答参考:15.改写磁盘文件中的数据,文件打开方式正确的是(12)。(A)ab+(B)rb+(C)wb+(D)rb你选择的答案:A正确正确答案:A解答参考:16.若有函数说明为void f(double s);则以下函数调用正确的是(14)。(A)double x; f(x);(B)double x; f( x);(C)double x; f(&x);(D)int x; f(&x);你选择的答案:C正确正确答案:C解答参考:二、判断题(判断正误,共5道小题)17.从键盘输入数据时,整型变量只能输入整型数值,实型变量只能输入实型数值。你选择的答案:说法错误正确正确答案:说法错误解答参考:18.w
7、hile(1) break;不是死循环。你选择的答案:说确正确正确答案:说确解答参考:19.枚举类型定义中的枚举标识符有次序关系,能够进行比较大小的运算。你选择的答案:说确正确正确答案:说确解答参考:20.若变量已有正确定义,且num = sum = 7;则执行表达式sum = num+, sum +, +num后sum的值为7.你选择的答案:说法错误正确正确答案:说法错误解答参考:21.若已定义int a=5;下面对两个语句(1)int *p=&a;和(2)*p=a;的解释是:语句(1)和(2)中的*p含义相同,都表示给指针变量p赋值你选择的答案:说法错误正确正确答案:说法错误解答参考:(注
8、意:若有主观题目,请按照题目,离线完成,完成后纸质上交学习中心,记录成绩。在线只需提交客观题答案。)三、主观题(共11道小题)22.main() int x=2,y=-1,z=2;if(xy)/y)if(y0) z=0;else z+=1;printf(“%dn”,z);写出程序输出结果(1)。参考答案:223.下面程序的运行结果是(2)。void fl(void)int x=1;static y=2;x+;y+;printf(%d,%dn,x, y);void main() int k;for(k=1;k=A& *s=Z) *s+=32;puts(a);若程序的输入为SWJTU,则输出结果为
9、(3)。参考答案:swjtu25.#include “stdio.h”#defineN5int swap(int *p, int *q)intt;if(preturn pq;/q;void f(int a ,int m)int*p, *q;p=a;q=a+m;while(swap(p,q)p+; q-void main( )int m,aN;for(m=0;mf(a,N-1);for(m=0;m若程序的输入为8 9 2 3 4,则输出结果为(4)。参考答案:4 3 2 9 826.下面程序的功能是输出100至1000以的素数,请填空使之完善。#include(1)main() int m,k,
10、j;for(m=100;m=1000;m+)k=sqrt(m);for(j=2;(2);j+)if(m%j(3)0) break;if(4) printf(“%5d”,m);参考答案:(1)“math.h”(2)jk或j=k+127.下面程序的功能是统计字符文件a .txt中有多少个空格,请填空使之完善。#include stdio.hmain () FILE *fp; char ch; int n=(5);if(!(fp=fopen(“a .txt”,(6) printf(File open correct!n);exit(0); while (7) ch=fputc( fp ); if(f
11、eof(p1)break;if(8)n+;printf(n=%dn,n);fclose(fp);参考答案:(5)0(6)”r”(7)feof(fp)(8)ch= =28.有如下语句:charA = SWJTU ;该字符串的长度是(3),A3=(4)。参考答案:(3)5(4)T(允许无单引号和写ASCII码84)29.若有定义int x=5, n=5;则执行语句x+=n+;后,x的值=(5),n的值=(6)。参考答案:(5)10(6)630.若有int a=2,b=1,c=0;执行语句c=a+ - b - -;后,变量c的值为(14)b的值(15)参考答案:(14)1(15)031.编程打印如下
12、图形到屏幕上。(9分)*要求打印行数由键盘输入。参考答案:#include/*程序结构正确2分*/void main() int n, i, j;scanf(“%d”,&n);/*正确输入行数1分*/for(i=1;i=n;i+)/*外循环控制正确1分*/ printf(“%*s”, n-i, “”);/*正确输出前导空格2分*/for(j=1;j=2*i-1; j+) putchar(*);/*正确输出星号2分*/printf(“n”);/*正确换行1分*/32.定义两个N个元素的整型数组,要求用初始化方法给这两个N元数组提供初值,要求每个数组中的元素初值各不相同但两个数组之间允许有相同的元
13、素。如果把这两个数组视为两个整数集合,编写程序,按由小到大次序输出这两个集合的交集中的元素。如果交集为空则输出no common elements.(10分)(提示:N用#define定义,N不要太大,取68即可;对提取的公共元素需要进行由小到大排序,最好的解决方法是插入排序,即选出一个公共元素则插入,选完则插入排序完成;本题并不限定使用插入排序)例如:int aN= -3, 9, 7, 10, 12, -8, 5, -4 , bN= 8, 10, -4, 5, 0, -8, 13, 6;则程序输出应为:-8-4510参考答案:#include/*程序结构正确1分*/#defineN 8voidmain()/*正确定义和初始化数组a, b 1分*/intaN= -3, 9, 7, 10, 12, -8, 5, -4 , bN= 8, 10, -4, 5, 0, -8, 13, 6;intcN, k=0,j, m, n;/*正确定义和初始化其它需要的变量1分*/for(m=0;mn;m+)=0&amcj+1=am;k+;break;if(k0)for(m=0;m/*正确输出2分*/elseprintf(no common elements);printf(n);
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1