高级语言程序设计期末考试试卷及答案( E卷)2005-2006学年上学期考试科目:考试类型:(闭卷)考试时间:120分钟考试须知:1.答案必须写在“答题卡”上,写在试卷上不得分。
2.必须在答题卡上正确填写班级、学号、姓名等内容。
一、选择题(共20小题,每小题1分)1. 下列C常量中不合法的是( )A.'\500'B.0500C.'500'D."500"2. C语言中,若对函数类型未加显示说明,则函数的隐含类型为()类型A.void B.intC.空D.char3. C语言程序的三种基本结构是()A. 嵌套结构、递归结构、顺序结构B.递归结构、循环结构、转移结构C. 顺序结构、选择结构、循环结构D.循环结构、转移结构、顺序结构4. 一个可执行C程序的开始执行点是()A.名为main()的函数B.包含文件的第一函数C.程序中的第一个语句D.程序中的第一个函数5. 下面程序段的执行结果是()int a=5, b=4, c=3;if(a>b>c)printf("a>b>c");elseprintf("no");A.a>b>c B.noC.编译错误D.运行错误6. 合法的数组定义是( )A .int a[] = “string ”B .int a[5] = {0,1,2,3,4,5}C .char a[] = {0,1,2,3,4,5}D .char s = “string ”7. 在C 语言中,提供的合法关键字是( )A .printfB .cherC .caseD .Else8. 在C 语言中,合法的字符常量是( )A .’\081’B .’\0’C .’ab ’D .”a ”9. putchar 函数可以向终端输出一个( )。
A)字符串 B)实型变量值C)整型变量表达式 D)字符或字符型变量10. 在C 语言中,一个char 变量占( )字节。
A .1B .2C .4D .811. 调用scanf(“%d,%d ”,&a,&b);时,正确的键盘输入是( )A .12,23B . a=12,b=23C .12:23D . 12 2312. 若有int s[4] = {1,2,3,4};,则s[s[0]+ s[3]-s[2]] 的值是( )A . 1B . 2C . 3D . 413. 在C 语言中,一般1个float 类型变量占4个字节,则设float x[2][4];假设数组x 开始于内存1000单元,则x[1][2]的存储始于( )A.1004B.1012C.1020D.102414. 下面对C 语言运算符的优先级叙述正确的是( )。
A . !(非) > 关系运算符 >算术运算符 > &&(与) > ||(或) > 赋值运算符B . !(非) > 算术运算符 > 关系运算符 > &&(与) > ||(或) > 赋值运算符C . 算术运算符 > 关系运算符 > !(非) > &&(与) > ||(或) > 赋值运算符D . 算术运算符 >!(非) >关系运算符 > &&(与) > ||(或) > 赋值运算符15. 若有代数式bcy x 32,则正确的C 语言表达式是( )A . x^2*y/3*b*cB .x*x/b/c*y/3C . x*x*y/3*b*cD .x^2*y/3/b/c16. 已知a=48, b=0, ch = 'a' 则表达式(a>=b && (ch='b') && !b)的值是()。
A.0 B.1 C.真D.非017. 设x、y均为整型变量,且x=10,y=3,则以下语句的输出结果是()printf(“%d,%d\n”,x--,--y);A)10,3 B)9,3 C)9,2 D)10,218. 在switch语句中,执行完一个case分支后要使流程跳出switch结构,应使用()语句。
A.continue B. breakC.else D. return19. 设有如下程序段int k=1;while(k)k++;则下面描述中正确的是()。
A.循环体一次也不执行 B.循环是无限循环C.循环体语句执行多次 D.循环体语句执行1次20. 下面标识符中,不合法的用户标识符为()A. struct B. c_10 C. _1234 D. Int二、看程序写结果题(共8题,共30分,前两题各3分,其它题各4分)1. #include "stdio.h"main(){float a = 5.4;int b, c=25, d;b = a * 3;d = c/10;printf("b=%d, d=%d\n", b, d);}程序执行结果为:2. #include "stdio.h"main(){char grade;grade = ’C’;switch (grade){ case 'A': printf("excellence\n");case 'B': printf("pass\n");case 'C': printf("fail\n");default:printf("error\n");}}程序执行结果为:3. #include "stdio.h"int x=10;int func(int y){y=x+y;return(y);}main(){ int x=15,y=15,z;z=func(y);printf("x=%d,y=%d,z=%d",x,y,z);}程序执行结果为:4. #include "stdio.h"#include "string.h"main(){char a[20]=”ABC123xyzABC”;int i;for (i=0;i<strlen(a);i++)if(a[i]>=97 && a[i]<=125)printf(“%c”, a[i]);}备注:字母A的ASC码是65,字母a的ASC码是97,数字1的ASC码是49。
程序执行结果为:5. #include "stdio.h"main(){int a[10]={1,2,3,4,5,6,7,8,9,10};int i;for (i=0;i<=4;i++){a[i]=a[9-i]; a[9-i]=a[i];}for (i=0;i<10;i++)printf("%d ",a[i]);}程序执行结果为:6. #include "stdio.h"#include "math.h"main(){int i,t,p;for (i=-2; i<=2; i++){for (p=0; p<abs(i); p++)printf (" ");for (t=abs(i)-2; t<=2-abs(i); t++){printf("%d", abs(i)+abs(t)+1);}printf("\n");}}备注: 表示空格程序执行结果为:7. #include "stdio.h"int f ( int n ){int c;if ( 1= = n )c = 1;else if ( 2= = n )c = 3;elsec = 3*f (n-1)-f (n-2);return c;}main(){printf ( "%d\n", f (1) );printf ( "%d\n", f (3) );printf ( "%d\n", f (6) );}程序执行结果为:8. #include "stdio.h"void func(int a, int b){while( a != b ){if ( a>b )a = a - b;elseb = b - a;}printf("%d\n", a);}main(){func( 24, 16);func( 413, 177);func( 35676, 864);}程序执行结果为:三、看程序填空题(共25个小空,每空1分)1. 下面程序实现由键盘输入3个数a、b、c,要求按由小到大的顺序输出,请填空。
#include "stdio.h"main(){float a,b,c,t;scanf("%f,%f,%f",(1));if ( a> b ){t=a;a=b;b=t}if ( a> c ){t=a;a=c;c=t}if ( (2)){ (3)}printf("%5.2f ,%5.2f ,%5.2f\n",a ,b ,c);}2. 下面程序判断某一年是否闰年,请填空。
#include "stdio.h"main(){int year ,leap ;scanf("%d", (4) );if( (5) ){if ( year%100= =0){if( year%400= =0)(6) ;else (7) ;}else(8) ;}elseleap = 0;if( leap )printf("%d is ",year);elseprintf("%d is not ",year);printf("a leap year.");}3.下面程序实现求出数组元素中的最大值,请填空。
#include "stdio.h"main(){ int c[10]={78,45,175,251,249,34,9,179,50,210};int i,max;______(9)________;for(i=1; ______(10)________;i++)if(______(11)________ )max = c[i];printf("max = %d\n", max);}4. 下面是求圆周率的程序,请填空。