1、一、填空 共 10 题 (共计 10 分)第 1 题 (1.0 分)从函数的形式上看,函数分为无参函数和【1】两种类型.答案:=(答案 1)=有参函数第 2 题 (1.0 分)C 语言中一个函数由函数首部和【1】两部分组成.答案:=(答案 1)=函数体第 3 题 (1.0 分)若在程序中用到“strlen()“ 函数时,应在程序开头写上包含命令# include “【1】“.答案:=(答案 1)=string.h第 4 题 (1.0 分)已知:int i=8,j=10,m,n;m=+i;n=j+;问语句执行后 m=【1】,n=【2】 。答案:=(答案 1)=9=(答案 2)=10第 5 题 (
2、1.0 分)int x; x=3*4%-5/6, 则 x 的值为 【1】.答案:=(答案 1)=0第 6 题 (1.0 分)若有以下数组 a,数组元素:a0a9,其值为 9 4 12 8 2 10 7 5 1 3该数组中下标最大的元素的值是【1】.答案:=(答案 1)=3第 7 题 (1.0 分)执行语句 char str81=“abcdef“;后,字符串 str 结束标志存储在 str【1】( 在括号内填写下标值)中.答案:=(答案 1)=6第 8 题 (1.0 分)当 a=1,b=2,c=3 时,执行以下程序段后 c=【1】.if (ac) b=a; a=c; c=b;答案:=(答案 1)
3、=2第 9 题 (1.0 分)已知 a=10,b=15,c=1,d=2,e=0,则表达式!ab)=c“ 的值为“真“ 。答案:Y第 8 题 (1.0 分)十进制数 15 的二进制数是 1111.答案:Y第 9 题 (1.0 分)若有说明 int c;则 while(c=getchar();是正确的 C 语句。答案:Y第 10 题 (1.0 分)整数 -32100 可以赋值给 int 型和 long int 型变量。答案:Y三、单项选择 共 30 题 (共计 30 分)第 1 题 (1.0 分)C 语言源程序名的后缀是A:exeB:cC:objD:cp答案:B第 2 题 (1.0 分)C 语言的
4、 if 语句中,用作判断的表达式为A:任意表达式B:逻辑表达式C:关系表达式D:算术表达式答案:A第 3 题 (1.0 分)C 语言源程序文件经过 C 编译程序编译后生成的目标文件的后缀为A:.cB:.objC:.exeD:.bas答案:B第 4 题 (1.0 分)在一个 C 源程序文件中,若要定义一个只允许本源文件中所有函数使用的全局变量,则该变量需要使用的存储类型是A:externB:registerC:autoD:static答案:D第 5 题 (1.0 分)下列数据中属于“字符串常量 “的是A:ABCB:“ABC“C:ABCD:A答案:B第 6 题 (1.0 分)C 语言源程序文件经过
5、 C 编译程序编译连接之后生成一个后缀为 ()的可执行文件A:.cB:.objC:.exeD:.bas答案:C第 7 题 (1.0 分)能正确表示逻辑关系:“ a10 或 a0 “的 C 语言表达式是A:a=10 or a=0 | a=10 中的表达式!E 等价于() 。A:E=0B:E!=1C:E!=0D:E=1答案:A第 17 题 (1.0 分)C 语言程序中必须有的函数是() 。A:#include “stdio.h“B:mainC:printfD:scanf答案:B第 18 题 (1.0 分)以下错误的描述是:函数调用可以() 。A:出现在执行语句中B:出现在一个表达式中C:做为一个函
6、数的实参D:做为一个函数的形参答案:D第 19 题 (1.0 分)下列定义数组的语句中不正确的是() 。A:static int a23=1,2,3,4,5,6;B:static int a23=1,4,5;C:static int a3=1,4;D:static int a=1,2,3,4,5,6;答案:D第 20 题 (1.0 分)若有说明:int *p,m=5,n; 以下正确的程序段是() 。A:p=scanf(“%d“,B:p=scanf(“%d“,*p)C:scanf(“%d“,*p=n;D:p=*p=m;答案:D第 21 题 (1.0 分)若有定义 int a10,*p=a;,则
7、p+5 表示A:元素 a5的地址B:元素 a5的值C:元素 a6的地址D:元素 a6的值答案:A第 22 题 (1.0 分)若 int a=3,则执行完表达式 a-=a+=a*a 后,a 的值是A:-15B:-9C:-3D:0答案:D第 23 题 (1.0 分)有定义:char*p1,*p2;则下列表达式中正确合理的是A:p1/=5B:p1*=p2C:p1= b=567; c=678; main() int x=10, y=20, z=30;fun(x, y, z);printf(“%d,%d,%dn“, z, y, x);A:30,20,10B:10,20,30C:456567678D:67
8、8567456答案:A第 25 题 (1.0 分)已知字符A的 ASC代码值是 65,字符变量 c1 的值是A,c2 的值是D.执行语句printf(“%d,%d“,c1,c2-2);后,输出结果是A:A,BB:A,68C:65,66D:65,68答案:C第 26 题 (1.0 分)对于定义,char *aa2=“abcd“,“ABCD“,选项中说法正确的是A:aa 数组元素的值分别是“abcd“和“ABCD“B:aa 是指针变量,它指向含有两个数组元素的字符型一维数组C:aa 数组的两个元素分别存放的是含有 4 个字符的一维字符数组的首地址D:aa 数组的两个元素中各自存放了字符a和A的地址
9、答案:D第 27 题 (1.0 分)若希望当 A 的值为奇数时,表达式的值为 “真”,A 的值为偶数时,表达式的值为“假”,则以下不能满足要求的表达式是() 。A:A%2=1B:!(A%2=0)C:!(A%2)D:A%2答案:C第 28 题 (1.0 分)与实际参数为实型数组名相对应的形式参数不可以定义为() 。A:float a;B:float *a;C:float a;D:float (*a)3;答案:C第 29 题 (1.0 分)以下描述中正确的是() 。A:由于 do-while 循环中循环体语句只能是一条可执行语句,所以循环体内不能使用复合语句B:do-while 循环由 do 开始
10、,用 while 结束,在 while(表达式)后面不能写分号C:在 do-while 循环体中,一定要有能使 while 后面表达式的值变为零(“假“) 的操作D:do-while 循环中 ,根据情况可以省略 while答案:C第 30 题 (1.0 分)对于基本类型相同的两个指针变量之间,不能进行的运算是() 。A:void main (void)char string256;int i;/*SPACE*/for (i = 0; i #include #include void fun (char *s, char *t)int i, d;/*SPACE*/d = 【?】;/*SPACE*
11、/for (i = 0; imain()/*FOUND*/int i,sum=1;/*FOUND*/for(i=2;ivoid wwjt(); int average_num(int a,int n)/*Program*/* End */main()int n,a100,i,num;scanf(“%d“,for(i=0;iai) k+;return(k);-第 2 题 (10.0 分)/*-【程序设计】-功能:用辗转相除法求两个整数的最大公约数。-*/#includevoid wwjt(); int gcd(int n,int m)/*Program*/* End */main()int n,
12、m,result;scanf(“%d%d“,result=gcd(n,m);printf(“the gcd is %dn“,result);wwjt();void wwjt()FILE *IN,*OUT;int m,n;int i2;int o;IN=fopen(“in.dat“,“r“);if(IN=NULL)printf(“Read FILE Error“);OUT=fopen(“out.dat“,“w“);if(OUT=NULL)printf(“Write FILE Error“);for(n=0;n6;n+) for(m=0;m2;m+) fscanf(IN,“%d“,o=gcd(i0,i1);fprintf(OUT,“%dn“,o);fclose(IN);fclose(OUT);答案:-int r,t;if(nm) t=n;n=m;m=t;r=n%m;while(r!=0) n=m;m=r;r=n%m;return(m);-