高级语言程序设计A一、 单选题(20题,1.5分/题,共30分)1.不属于C语言基本数据类型的是( c ) A.整数 B.字符型 C.数组型 D.浮点型2.C语言中,数值常量0.5的类型是 ( c ) A.整型 B.单精度浮点数 C.双精度浮点数 D.长整型3.C语言中,”\x3d”在内存中占用的字节数是( b ) A.1 B.2 C.4 D.54.表达式5/4的值是( b ) A.0 B.1 C.2 D.1.255. 在C语言中,数字029是一个( a )A)八进制数 B)十六进制数 C)十进制数 D)非法数6. 下列标识符中,合法的是(a )A)_main B)void C)$123 D)123a7.对于while语句,错误的说法是( b ) A.用条件控制循环体的执行次数 B.循环体至少要执行一次 C.循环体有可能一次也不执行 D.循环体中可以包含若干条语句8.设int a=9,b=20;则printf(″%d,%d\n″,a--,--b);的输出结果是( a ) A.9,19 B.9,20 C.10,19 D.10,209 已经a,b,c是整型变量,下列语句中属于正确给a赋值语句是( c )A) a=7+b =a+7; B) a=7+b++=a+7; C) a=(7+b,b++,a+7); D) a=7+b+c=a+7;10.语句 printf(“%2d”, 123)的输出结果是 (a)A) 123 B) 12 C) 0123 D) 2311. 已知变量a=3, 则语句 printf(“%d”, (a+1, a=5, a + 3))的输出结果为( d)A) 3 B) 4 C) 5 D) 812.执行下列语句 int a=8,b=7,c=6; if(ac){a=c;c=b;} printf(″%d,%d,%d\n″,a,b,c); 后输出的结果是( c ) A.6,7,7 B.6,7,8 C.8,7,6 D.8,7,813. 在switch(表达式)中,表达式的类型描述正确的是( c )A) 可以是任意类型 B) 只能是整型C) 可以是整型或字符型 D) 只能是数值类型14 下面的程序dA) 有语法错误不能通过编译B) 输出* * * *。
C) 可以通过编译,但是不能通过连接,因而不能运行D) 输出# # # #include void main(){ int x=3,y=0,z=0; if(x=y+z) printf("* * * *"); else printf("# # # #");}15.设char x[ ]=”12345”,y[ ]={‘1’, ‘2’,’3’,’4’,’5’,’\0’};那么( a ) A.x数组的长度等于y数组的长度 B.x数组的长度大于y数组的长度 C.x数组的长度少于y数组的长度 D.x数组与y数组的存储区域相同16.设int i,x[3][3]={1,2,3,4,5,6,7,8,9}; 则下面语句 for(i=0;i<3;i++) printf(″%d″,x[i][2-i]); 的输出结果是( c ) A.147 B.159 C.357 D.36917.设int b[ ]={1,2,3,4},y,*p=b; 则执行语句y=*p++;之后,变量y的值为( a ) A.1 B.2 C.3 D.418、以下关于函数叙述中,正确的是 。
d A.在函数体中可以直接引用另一个函数中声明为static类别的局部变量的值 B.在函数体中至少必须有一个return 语句 C.在函数体中可以定义另一个函数 D.在函数体中可以调用函数自身19、以下是一个自定义函数的头部,其中正确的是 c A.int fun(int a[ ],b) B.int fun(int a[ ],int a) C.int fun(int *a,int b) D.int fun(char a[ ][ ],int b)20、若w=1,x=2,y=3,z=4;则条件表达式w>x?w:y
)8、运算符 “-” 既可以用作单目运算符也可以用作双目运算符(x)9、break指令只能在循环体中使用()10、指针变量里存储的是一个内存地址三、程序填空题(2题5空,4分/空,共20分)1,下面程序的功能是:输入任意的三个整数,将三个数按从小到大的顺序输出请在空白处选择合适的内容以完成程序的功能不得修改其他内容include void swap(int * a, int * b){ int c = *a; *a = *b; *b = c;}void main(){ int a, b, c, t; scanf("%d%d%d", &a, &b, &c); if (a > b) { swap(&a, &b); } if (b > c) { swap(&b, &c); } if (____1__) { swap(___2__); }}空白1处和空白2出的内容可分别为 ( a ) ( c)A)a > b B)a > c C)swap(&a, &b) D)swap(&a, &c)2. 下面程序的功能是求1!+2!+3!+4!+5!,即1~5的阶乘的和,请为空白处选择合适的内容以完成程序的功能。
不能修改其他内容include void main(){ int i, s, y; s = _____1_____; y = _____2_____; for (i = 1; i <= 5; i ++) { y = ____3_____; s += y; }}空白1、2、3处依次的内容为( b ) ( a ) ( e )A)1 B)0 C)i D)yE y*i F s*i注:第一小题提供4个选项供考生选择,第二小题提供6个选项供考生选择四、编程题(2题,每题20分,共40分)注:编程题不涉及指针1、 从键盘输入任意一串字符串,程序输出同样的一串字符,要求输出字符串中大小写相互转化,其他符号不变如输入“a123BxC”,则输出“A123bXc”2、 任意输入10个整数,打印出10个数中的最大值考试内容范围:试卷内容不涉及复杂数据类型和文件答案:1C C B B A A B A C A D C C D A C A D C B二Y X X Y Y Y Y Y X Y三A CB A E四1#include void main(){ int i; char s[80]; scanf("%s", s); for (i = 0; s[i]; i ++) { if (s[i] >='a' && s[i] <= 'z') { s[i] -= 32; } if (s[i] >='A' && s[i] <= 'Z') { s[i] += 32; } } printf("%s", s);}2#include void main(){ int n, max, i; scanf("%d", &max); for (i = 1; i < 10; i ++) { scanf("%d", &n); if (n > max) { max = n; } } printf("max=%d", max);}。