1、题号 一 二 三 四 五 六 七 八 九 十 总分题分 36 15 21 28 100统分人签 名得分 1 、本试卷共 4 页,试卷如有缺页或破损,请立即举手报告以便更换。2 、考试结束后,考生不得将试卷、答题纸和草稿纸带出考场。3 、答案全部做在答题纸上,并写在密封线内和纸卷正面,否则不记分。一、 单选题。从供选择的答案中选出正确答案。 (每题1.5分,共36分)1、 以下定义和语句:char cl=b,c2=e;printf(d,cn,c2c1,c2aA);则输出结果是:( )A. 2,M B. 3,E C. 2,E D. 输出项与对应的格式控制不一致,输出结果不确定2、 若有两条语句st
2、atic char x =“abcde“;static char y =a,b,c,d,e;则下列语法中正确的是 ( )A. x 数组和 y 数组的长度相同 B. x 数组的长度小于 y 数组的长度C. x 数组的长度大于 y 数组的长度 D. x 数组等价于 y 数组3、 以下程序的输出结果是( )#define f(x) x*xmain( ) int a=6,b=2,c;c=f(a) / f(b);printf(“%d n“,c); A. 9 B. 6 C. 36 D. 18 4、 在 C 语言中的 if 语句中,用作判断的表达式为( )A. 关系表达式 B. 逻辑表达式 C. 算数表达式
3、 D. 任意表达式5、 执行下面程序中输出语句后,a 的值是( )main() int a;printf(“%dn“,(a=3*5,a*4,a+5); A. 65 B. 20 C. 15 D. 106、 合法的数组定义是( )A. static int a=string; B. static int a5=0,1,2,3,4,5C. static char a=string; D. static char a=0,1,2,3,4,5;7、 C 语言可执行程序的开始执行点是( )A. 程序中的一条可执行语句 B. 程序中第一个函数C. 程序中的 main 函数 D. 包含文件中的第一个函数8、
4、判断两个字符串 S1 和 S2 相等的正确语句是( )A. if (S1=S2) B. if (S1=S2)C. if (strcpy(S1,S2) D. if (strcmp(S1,S2)=0)9、 若有条件表达式 (exp)?a+:b-,则以下表达式中能完全等价于表达式(exp)的是( )A. (exp=0) B. (exp!=0) C. (exp=1) D. (exp!=1)10、 若 fp 是指向某文件的指针,且已读到此文件末尾,则库函数 feof(fp)的返回值是( )A. EOF B. 0 C. 非零值 D. NULL11、 下面程序段的运行结果是( )char *s=“abcde
5、“;s+=2;printf(“%d“,s);A. cde B. 字符c C. 字符c的地址 D. 无确定的输出结果12、 假定 int 类型变量占用两个字节,其有定义:int x10=0,2,4;,则数组 x 在内存中所占字节数是( )A. 3 B. 6 C. 10 D. 2013、 不合法的 main 函数命令行参数表示形式是( )A. main(int a,char *c) B. main(int arc,char *arv)C. main(int argc,char *argv) D. main(int argc,char *argv)14、 若有以下定义和语句:double r=99,
6、 *p=后,j 的值是( )。A. 1 B. 2 C. -1 D. -216、 设有程序段int k=10;while(k=0) k=k-1;则下面描述中正确的是( )A. while 循环执行10次 B. 循环是无限循环C. 循环体语句一次也不执行 D. 循环体语句执行一次17、 定义如下变量:int n=10则下列循环的输出结果是( )while (n7) n-;printf(“%dn“,n);A. 10 9 8 B. 9 8 7 C. 10 9 8 7 D. 9 8 7 618、 以下叙述中不正确的是( )A. 在不同的函数中可以使用相同名字的变量B. 函数中的形式参数是局部变量C. 在
7、一个函数内定义的变量只在本函数范围内有效D. 在一个函数内的复合语句中定义的变量在本函数范围内有效19、 能正确表示逻辑关系:“a =10或 a 0“的 C 语言表达式是( )A. a =10 or a =0|a =10 int x,y;x=1.2; y=(x+3.8)/5.0;printf(“%d n“, d*y);A. 3 B. 3.2 C. 0 D. 3.0721、 为避免嵌套的条件分支语句 ifelse 的二义性,C 语言规定,C 程序中的 else 总是与( )组成配对关系。A. 其上面距它最近的,并且没有其他 else 与其配对的 if 相配对B. 在同一行上的 ifC. 缩排位置
8、相同的 ifD. 在其之前未配对的 if22、 若有说明 int a34;则 a 数组元素的非法引用是( )A. a02*1 B. a13 C. a4-20 D. a0423、 C 程序中,若函数调用采用传值方式,则( )A. 实参和虚参各自占有存储单元 B. 实参和虚参共享存储单元C. 由用户指定 D. 由计算机随机确定24、 以下程序中调用 scanf 函数给变量 a 输入数值的方法是错误的,其错误原因是( )main()int *p,*q,a,b;p=printf(“input a:“);scanf(“%d“,*p);A. *p 表示的是指针变量 p 的地址 B. *p 表示的是变量 a
9、 的值,而不是变量 a 的地址C. *p 表示的是指针变量 p 的值D. *p 只能用来说明 p 是一个指针变量二、 填空题。 (每空1分,共15分)1、 一个函数一般由两部分组成:它们分别是( )和( )。2、 把数组元素按顺序存放的过程称为( ).3、 计算表达式8.0*(1/2)的值是( ).4、 当 a=5,b=4,c=2时,表达式 a b !=c 的值是( ).5、 若有定义:int x=3,y=2;float a=2.5,b=3.5;则下面表达式的值为( )(x+y)%2+(int)a/(int)b6、 使用两个下标的数组称为( )数组。7、 在 C 语言中,逻辑运算符的优先级别从
10、高到低依次是( )8、 设 a、b、c 为整型数,且 a=2,b=3,c=4,则执行完语句 a*=16+(b+)-(+c);后,a 的值是( )9、 在 C 语言中 (以16位 PC 机为例 ),一个 char 型数据在内存中所占的字节数为( ) ;一个short int 型数据在内存中所占的字节数为( ) ;一个 float 型数据在内存中所占的字节数为( )10、 C 语言中最简单的数据类型是 ( ) 、 ( ) 、 ( ) 。三、 程序分析题(每小题1.5分,共21分)1、 函数 fun 的功能是:使一个字符串按逆序存放,请填空void fun (char str) char m; in
11、t i,j;for(i=0,j=strlen(str);_;i+,j-) m=stri;stri=_;strj-1=m;printf(“%sn“,str);2、 写出该程序运行的结果.fun (int p)int d=5;d+=p+;printf(“%d,“,d);main( )int a=3;int d=1;fun(a);d+=a+;printf(“%dn“,d);3、 使以下程序段输出10个整数,请填入一个整数。for(i=0;i main( )int i=0,j=0,a=6;if (+i 0) | (j+ 0) a+;printf(“i=%d,j=%d,a=%dn“,i,j,a);结果:
12、_8、 以下程序的输出结果是_ 。main() int a=0a+=(a=8);printf(“%dn“,a);9、 下列程序段的输出结果是 _。main() char b=“Hello,you“;b5=0;printf(“%s n“, b );10、 函数 pi 的功能是根据以下近似公式求 值:(*)/6=1+1/(2*2)+1/(3*3)+1/(n*n)现在请你在下面的函数中填空,完成求 的功能。#includedouble pi(long n) double s=0.0; long i;for(i=1;i100)printf(”dn” ,a100);else printf(”dn” ,a
13、50) printf(“%d“,a);if(a40) printf(“%d“,a);if(a30) printf(“%d“,a);14、 下面程序段的运行结果是_x=2:doprintf(”*”);x-;while(x);四、 程序设计题(每小题7分,共28分)1、 回文数是指正读和反读都一样的正整数。例如 3773 是回文数。求出 1000 , 9999 之间的回文数是偶数的最大回文数2、 一个 14*14 方阵 A(i,j) ,其每个元素的值为该元素下标的平方和,求出该矩阵所有对角线元素的累加和 ( 注: i ,j 从 1 到 14) 。3、 写一个判断素数的函数,在主函数输入一个整数,输
14、出是否是素数的信息。4、 有 5 个学生,每个学生的数据包括学号、姓名、 2 门课程的成绩,从键盘输入 5 个学生数据,要求输出 5 个学生2 门课程总平均成绩。面向过程程序设计(C 语言)参考答案及评分标准 (A 卷)适用专业年级:计06级,通信06级一、 单选题。从供选择的答案中选出正确答案。 (每题1.5分,共36分)1 2 3 4 5 6 7 8 9 10 11 12 13 14 15B C C D B D C D B C C D C D C16 17 18 19 20 21 22 23 24 C B D D C A D A B 二、 填空题。 (每空1分,共15分)1、 函数说明部分
15、, 函数体2、 排序3、 04、 15、 16、 二维7、 ! |8、 289、 1, 2, 410、 整型, 实型, 字符型注:1和10题顺序任意三、 程序分析题(每小题1.5分,共21分)1、 i#includevoid main() int i,m;scanf(“%d”,fun(m);void fun(int m); int i,k;k=sqrt(m);for (i=2;ik printf(“%d is a prime numbern”);else printf(“%d is not a prime numbern”);4、 #include #include Mainstruct st
16、udent char no5;char name8;int score2;student record5;int i,sum=0,j,ave;printf(“Please input 5 students score:”);for (i=0;i5;i+) printf(“Please input %d number:”,i+1);printf(“enter number:”);scanf(“%s”,recordi.no);printf(“enter name:”);scanf(“%s”,recordi.name);for (j=0;j2;j+) printf(“%s”,subjectj);scanf(“%d”,sum=sum+ recordi.scorejave=sum/10;printf(“total average score is:%d”,ave);