2022年2022年计算机二级C语言程序设计基础试题七 .pdf
第 1 页 共 6 页程序设计考试试卷七1.C 语言中,如果对函数类型未加说明,则函数的隐含类型为() A.duoble B. void C.int D.char 2.union data int i; char c; float f; ; 定义了()A.共用体类型data B.共用体变量data C.结构体类型data D.J结构体变量data 3. 设 a=3,b=4, 表达式 ab?b:a 的值是()A.3 B. 4 C.4:3 D.0 4. 下面对枚举类型的叙述,不正确的是()A.定义枚举类型用enum开头 B.枚举常量的值是一个常数C.一个整数可以直接赋给一个枚举变量 D. 枚举值可以用来作判断比较5. 求 0 到 50 的总和,不正确的程序段是()A. int i,sum; sum=0; for(i=0;i51;i+) sum+=i; B. int i,sum; for(i=0,sum=0;i51;sum+=i+); C. int i,sum; i=0;sum=0; for(i50) break; sum+=i; 6. 表达式 (int)3.6*3的值为()A9 B. 10 C . 10.8 D.18 7. 程序的结果为() main() int a=3,b=4,t=1; if (ab) t=a;a=b;b=t; printf(“%d ”,a) A. 3 B.4 C.1 D.0 8程序 main() int a=1; switch(a) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 6 页 - - - - - - - - - 第 2 页 共 6 页 case 1: printf(“1”);case 2: printf(“2”); default: printf(“other ”); 的结果为()A.12other B.1 C.2 D.Other 9函数 strcmp( “A”, “B”)的值为 ( ) A.0 B.-1 C.1 D.3 10. 下程序的结果为( ) int f(a) int a; auto int b=0; static int c=3; b=b+1; c=c+1; return(a+b+c); main() int a=2,i; for (i=0;i3;i+) printf(“%d ”,f(a);A.789 B.777 C.8910 D.9 11合法的C语言标识符是() A.ab&c B.2ab C._a1 D./n 12若有定义int a=2,b=9,k;k=a+b+/a+;则 k 的值是()A.6.5 B.7 C.6 D.8 13标有 /* */语句的输出结果为()int x=20; printf(“%d,%o,%x ”,x,x,x);/* */A.20,20,20 B.20,24,14 C.20,14,24 D.20,024,14 14. 将 p 定义为指向含n 个元素的一维数组的指针变量,正确的语句为()A. int (*p)n; B. int *pn; C.int pn; D. int *pn; 15. 下面程序执行结果是() main() char c1,c2; int i=2; c1=a;c2= c; c1=c1+i; c2=c2-i; printf(“%c,%d ”,c1,c2);/*a的ASCII 码为 97*/ A语法错误 B.99,97 C.c,a D.c,97 16. 请问: 071052 的结果是()A.032 B.016 C.023 D.022 17. 下面对函数的叙述,不正确的是()A.函数的返回值是通过函数中的return语句获得的B.函数不能嵌套定义C.一个函数中有且只有一个return语句D.函数中没有return语句,并不是不带回值18. 下面的叙述,不正确的是()名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 6 页 - - - - - - - - - 第 3 页 共 6 页A.宏名无类型,其参数也无类型B.宏定义不是C语句,不必在行末加分号C.宏替换只是字符替换D.宏替换定义命令必须写在文件开头19. 有定义 int a34,输入其 3 行 2 列元素的正确语句为()A.scanf( “%d ”,a3,2); B.scanf( “%d ”,*(*(a+2)+1)C.scanf( “%d ”,*(a+2)+1); D.scanf(“%d ”,*(a2+1); 20. 下面对指针变量的叙述,正确的是()A.指针变量可以加上一个指针变量B.可以把一个整形数赋给指针变量C.指针变量的值可以赋给指针变量D.指针变量不可以有空值,即该指针变量必须指向某一变量二、阅读程序,写出执行结果(每题 5 分,共 20 分)1、#include “stdio.h ”main() int i,k,a10,p3; k=5; for ( i=0;i10;i+) ai=i; for (i=0;i3;i+) pi=ai*(i+1); for ( i=0;i3;i+) k+=pi*2; printf(“%d n”,k); 2 、include “stdio.h ”main( ) int a=2,*p,*pp; pp=&p; p=&a; a+; printf(“%d,%d,%d n”,a,*p,*pp); 3、main( ) union char s2; int i; g; g.i=0 x4142; printf(“g.i=%xn”,g.i);printf(“g.s0=%xn”,g.s0,g.s1); g.s0=1; g.s1=0; printf(“g.s=%xn”,g.i); 4、#include “stdio.h ”名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 6 页 - - - - - - - - - 第 4 页 共 6 页 main( ) int x=1; void f1( ),f2( ); f1( ); f2(x); printf(“x=%d n”,x);void f1(void) int x=3; printf(“x=%dn”,x);void f2(x) int x; printf(“x=%d t ”,x);Q ( 下列每小题只有一个错误,请改正。) 1.str_space(char *str)/*统计字符串中空格数*/ int num=0; char ch; while(ch=*str+)!=0)if(ch= ) num+; return (num); 2.main() int a,b; float x,y,z; scanf( “%f%f%f ”,&x,&y,&z); a=b=x+y+z; c=a+b; printf(“%d%d%d”,a,b,c);3.#include “stdio.h ”main() static int a=0*5; int i=0,sum=0; for(;i5;i+) sum=sum+*(a+i)+i; printf(“sum=%d ”,sum); 4.#include “stdio.h ” main() char a20; int i=0; scanf( “%s ”,&a);while(ai) printf(“%c ”,ai+);四、程序填空 (每空 2.5 分,共 10分)名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 6 页 - - - - - - - - - 第 5 页 共 6 页1、本程序实现判断m是否为素数,请在程序空白处填空# include “stdio.h ”main( ) int m, i, k; scanf( “%d ”,&m);k=_; for (i=2;i=k;i+) if(m%i=0) break; if (_) printf(“%d ”is a prin”,m);else printf(“%d is not a prime numbern”,m); 2、下面 invert函数的功能是将一个字符串内容颠倒过来,请填空。# include “string.h”void invert(char str) int i,j,k; for ( i=0,j=strlen(str)-1;i=m 2. i+(或+i, 或 i+=1, 或 i=i+1),j (或-j,或 j-=1,或 j=i-1) stri=strj(或*(str+i)=*(str+j) 五、编程题 (每题 10 分,共 30 分)p(char *str1,char *str2) while(*str1&*str2) (3 分)if(*str1=*str2) str1+;str2+;(3 分)else break; (2 分)return(*str1-*str2); (2 分) 2 #includevoid main( ) int a8, i, j, min,temp; printf( “ 请输入原数组:n” ); for(i=0;i8;i+)scanf ( “ %d” ,&ai); for(i=0;i8;i+) min=i; for(j=i+1;jaj)min=j; temp=amin; amin=ai; ai=temp; printf( “ 排序后为: n” ); for(i=0;i8;i+)printf(“ %d ” ,ai); 3. #include (1 分)main() long term = 0,sum = 0; (1 分)int a , i, n; printf(Input a,n: ); (1 分)scanf(%d,%d, &a, &n); /* 输入 a,n 的值 */ (1 分)for (i = 1; i = n; i+) (1 分) term = term * 10 + a;/* 求出累加项 */ (2 分)sum = sum + term; /* 进行累加 */ (2 分) printf(sum=%ldn,sum); (1 分)名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 6 页 - - - - - - - - -