1、安 徽 机 电 职 业 技 术 学 院 20 20 学年第 二 学期 C 语言程序设计期终考试试卷班级 姓名 学号 得分 评卷人 复核人 一、填空题(每空 1 分,共 10 分)1、C 语言源程序文件的后缀是.C,经过编译后,生成文件的后缀是 ,经过连接后,生成文件的后缀是 。2、一个 C 语言程序是从 函数开始执行的。3、设 x 的值为 15,n 的值为 2,则表达式 x%=(n+=3)运算后,x 的值是 。4、定义符号常量 PI 的值为 3.14 的预编译命令是 。5、若有定义 int a6; 则 a 数组的最大下标为 ,最小下标为 。6、能表示 x 能被 5 或 7 整除的 C 语言逻辑
2、表达式是 。7、若有定义:int *p;则变量 p 为 指针_类型变量。8、若用户自定义函数 fab 无返回值,并有一个 int 类型的形式参数和一个 double 类型的参数,则 fab 函数的声明为 void fab( int, double)。得分 评卷人 复核人 二、选择题(每题 2 分,共 60 分)1、不属于字符型常量的是_.A A B a C “A” D b2、下面的变量说明中_是正确的。Achar :a,b,c; Bchar a; b; c; Cchar a, b,c; Dchar a、 b、 c;3、若 x=5,y=3 则 y*=x+5; y 的值为_.题号 一 二 三 四
3、五 六 七 八 得分得分A 10 B 20 C 15 D 304、设整型变量 n 的值为 2,执行语句“n+=n-=n*n;”后,n 的值是_。A 0 B 4 C- 4 D25、在 C 语言中,字符串处理函数的原型在 头文件中。Atime.h Bstdio.h Cmath.h Dstring.h6、设有定义:long x=-123456L; 则以下能够正确输出变量 x 值的语句是_。Aprintf(“x=%dn” ,x) Bprintf(“x=%ldn”,x)Cprintf(“x=%8dln”,x) Dprintf(“x=%Dn”,x) ;7、在 Turbo C 中,执行程序的命令是 。ASa
4、ve BCompile CLoad DRun8、在 C 语言中,从循环体内跳出,转向循环外执行的语句是:_.A break 语句 Breturn 语句 Ccontinue 语句 D空语句。9、设 C 语言中,一个 int 型数据在内存中占 2 个字节,则 int 型数据的取值范围为 。A-255 255 B-3276832767 C 0 65535 D 051210、以下叙述不正确的是 。A一个程序可以由一个或多个函数组成 B一个 C 源程序必须包含一个 main 函数C注释只能写在一条语句的最后面 D一个 C 源程序可以只有一个 main 函数11、已知字母 A 的 ASCII 码为十进制数
5、 65,且 c2 为字符型变量,则执行语句c2A + 3 后,c2 的值为 。A D B 68 C不确定的值 D C 12、下面关于 break 语句描述正确的是 _。A用作函数内的任一语句 B只能用在循环体内或 switch 语句中C只能用在循环体内 D用在能出现语句的任何地方13、以下程序的输出结果是 。main( ) int a=11;printf(“%dn”,+a);A 12 B 11 C10 D 1314、若有 int a; float b;scanf(“%d,%f”, 使 a、b 的值分别是 30 和5.5,则正确的输入是 。A30 5.5 B30, 5.5 Ca=30,b=5.5
6、 Da=30 b=5.515、C 语言用_表示逻辑“真”值。Atrue Bt 或 y C1 或非零值 D整型值 016、若 x=3, y=4,在语句 if ( x=5 ) y=y+x; else y=y-x; 执行后,y 的值为 。A7 B1 C-1 D317、为了避免嵌套的 if 语句的二义性,C 语言规定 else 总是 。A与缩排位置相同的 if 组成配对关系B与在其之前未配对的 if 组成配对关系C与在其之前未配对的最近的 if 组成配对关系D与同一行上的 if 组成配对关系18 设有数组定义:char array=“student”;则数组所占的存贮空间为 _.A6 个字节 B 7
7、个字节 C 8 个字节 D 9 个字节19、设 p1 和 p2 是指向同一个字符串的指针变量,c 为字符变量,则以下不能正确执行的赋值语句是_。Ac=*p1+*p2; B p2=c Cp1=p2 Dc=*p1*(*p2);20、语句 while ( ! E );中的表达式 ! E 等价于_。AE=0 BE!=1 CE!=0 DE=121、若有以下定义,则 p+5 表示_ _。int a10, *p=a;A元素 a 5 的地址 B元素 a 5 的值C元素 a 6 的地址 D元素 a 6 的值22、以下程序执行后的输出结果是_。main() int k=2,i=2,m; m=(k+=i*=k);
8、printf(“%d,%dn“,m,i); A 8,6 B 8,3 C 7,4 D6,4 23、以下程序运行结果是_。main() int a=8 , b=1;a=a+b;b=a*b;printf(“a=%d ,b=%d”,a,b) ; Aa=9, b=8 Ba=8, b=8 Ca=8, b=9 Da=9, b=924、有以下程序段 int n=0,p; do scanf(“%d“,n+; while(p!=12345s*=s;printf (“%dn“, s ); A14 B16 C12 D926 下面程序的运行结果是 。main() int a=6095 , b ;b=a%1000 ;pr
9、intf(“%d”, b) ; A 6 B95 C5 D027、以下程序的输出结果是 。# include “stdio.h”main( ) int a=8,2,9,4,1, *p;p=a;*(p+2 ) +=2;printf(“%d, %d ”, *p, *(p+2) ) ;A8,11 B8,6 C9,11 D出错28、若有以下程序段,则程序的执行结果是 。i=1;while ( i 10) printf(“%dn”, i);A1 B 9 C 10 D死循环29、若有以下程序段,则当 c1 时程序的执行结果是 。a=0; b=0;while ( a3 ) if ( c0) break;a+;
10、if ( c=0) continue;b+;printf ( “%d, %dn”, a, b );A0, 0 B0, 3 C3, 0 D3, 330、以下程序的输出结果是 。void func( int *a, int b ) b 0 =*a +6; main( ) int a, b 5 ;a=0; b 0 =3;func ( printf( “%dn”, b 0 );A6 B7 C8 D9得分 评卷人 复核人 三、程序填空题(每空 2 分,共 18 分)1、 、以下程序中,主函数调用了 LineMax 函数,实现在 N 行 M 列的二维数组中,找出每一行上的最大值。请填空。#define N
11、 3#define M 4void LineMax( int xNM ) int i,j,p;for(i=0; iN;i+)(1) (2) (3) p=0;for(j=1; (1) ;j+)if(xipxij) (2) ; printf(“The max value in line %d is %dn“, i,xip);main() int xNM=1,5,7,4,2,6,4,3,8,2,3,1;(3) ;2、完善程序,使 5*5 数组的主对角线元素为 1,其它元素为 0。void fun ( a ) int j, k;for(j=0; j5; j+)for( k=0; k5; k+) if(
12、k= (4) ) (5) ;else (6) ;3、从键盘输入 10 个数存入一维数组 a,统计数组下标是奇数且数组元素值为偶数的元素个数。#include “stdio.h”main() int a10, i, s;num= (7) ;for( i=0; i10; i+) scanf( “%d”, (8) );if ( i%2=1 (9) ai%2=0 ) num+;printf( “num=%dn”, num );.得分 评卷人 复核人 四、编程题(每题 6 分,共 12 分)1、编程求 1 到 100 间所有偶数的和并输出结果。(4) (5) (6) (7) (8) (9) 2、从键盘上输出 10 个整数存入一维数组中,排序后按由大到小的顺序输出。