![]() ![]() |
|
2003年9月全国计算机等级考试二级C语言笔试试题及答案 | |
作者:佚名 文章来源:不详 点击数 更新时间:2008/4/18 14:06:40 文章录入:杜斌 责任编辑:杜斌 | |
|
|
(考试时间120分钟,满分100分)
(16)有以下程序 (30)有以下程序 (31)已定义c为字符型变量,则下列语句中正确的是 A.c='97'; B.c="97"; C.c=97; D.c="a"; (32)以下不能正确定义二维数组的选项是 A.int a[2][2]={{1},{2}}; B.int a[][2]={1,2,3,4}; C.int a[2][2]={{1},2,3}; D.int a[2][]={{1,2},{3,4}}; (33)以下选项中不能正确把cl定义成结构体变量的是 A.typedef struct B.struct color cl { int red; { int red; int green; int green; int blue; int blue; } COLOR; }; COLOR cl; C.struct color D.struct { int red; { int red; int green; int green; int blue; int blue; } cl; } cl; (34)以下能正确定义一维数组的选项是 A.int num[]; B. #define N 100 int num[N]; C.int num[0..100]; D.int N=100; int num[N]; (35)下列选项中正确的语句组是 A.char s[8]; s={"Beijing"}; B.char *s; s={"Beijing"}; C.char s[8]; s="Beijing"; D.char *s; s="Beijing"; (36)已定义以下函数 fun(int *p) { return *p; } 该函数的返回值是 A.不确定的值 B.形参p中存放的值 C.形参p所指存储单元中的值 D.形参p的地址值 (37)下列函数定义中,会出现编译错误的是 A.max(int x,int y,int *z) B.int max(int x,y) { *z=x>y ? x:y; } { int z; z=x>y ? x:y; return z; } C.max(int x,int y) D.int max(int x,int y) { int z; { return(x>y?x:y); } z=x>y?x:y; return(z); } (38)有以下程序 #include #define F(X,Y) (X)*(Y) main() { int a=3, b=4; printf("%d\n", F(a++, b++)); } 程序运行后的输出结果是 A.12 B.15 C.16 D.20 (39)有以下程序 fun(int a, int b) { if(a>b) return(a); else return(b); } main() { int x=3, y=8, z=6, r; r=fun(fun(x,y), 2*z); printf("%d\n", r); } 程序运行后的输出结果是 A.3 B.6 C.8 D.12 (40)若有定义:int *p[3];,则以下叙述中正确的是 A.定义了一个基类型为int的指针变量p,该变量具有三个指针 B.定义了一个指针数组p,该数组含有三个元素,每个元素都是基类型为int的指针 C.定义了一个名为*p的整型数组,该数组含有三个int类型元素 D.定义了一个可指向一维数组的指针变量p,所指一维数组应具有三个int类型元素 (41)以下程序中函数scmp的功能是返回形参指针s1和s2所指字符串中较小字符串的首地址 #include #include char *scmp(char *s1, char *s2) { if(strcmp(s1,s2)<0) return(s1); else return(s2); } main() { int i; char string[20], str[3][20]; for(i=0;i<3;i++) gets(str[i]); strcpy(string,scmp(str[0],str[1])); /*库函数strcpy对字符串进行复制*/ strcpy(string,scmp(string,str[2])); printf("%s\n",string); } 若运行时依次输入:abcd、abba和abc三个字符串,则输出结果为 A.abcd B.abba C.abc D.abca
(42)有以下程序 二、填空题(每空2分,共40分) (1)计算机软件分为系统软件与应用软件,UNIX属于 〖1〗 。 (2)假设在当前盘的当前目录下有两个文件A.TXT和B.TXT,现要将文件B.TXT合并连接到文件A.TXT的后面。若使用TYPE命令,则完整的命令为 〖2〗 。 (3)Internet的信息服务方式分为基本服务和扩展服务,电子邮件属于 〖3〗 。 (4)在Windows环境下,利用菜单命令删除固定硬盘上的文件与文件夹,实际上是将需要删除的文件与文件夹移动到 〖4〗 文件夹中。 (5)在Windows环境下,为了进行"添加/删除程序"操作,首先打开 〖5〗 ,然后双击其中的相应图标。 (6)以下程序运行后的输出结果是 〖6〗 。 main() { int p=30; printf("%d\n",(p/3>0 ? p/10 : p%3)); } (7)以下程序运行后的输出结果是 〖7〗 。 main() { char m; m='B'+32; printf("%c\n",m); } (8)以下程序运行后的输出结果是 〖8〗 。 main() { int a=1,b=3,c=5; if (c=a+b) printf("yes\n"); else printf("no\n"); } (9)以下程序运行后的输出结果是 〖9〗 。 main() { int i,m=0,n=0,k=0; for(i=9; i<=11;i++) switch(i/10) { case 0: m++;n++;break; case 10: n++; break; default: k++;n++; } printf("%d %d %d\n",m,n,k); } (10)执行以下程序后,输出'#'号的个数是 〖10〗 。 #include main() { int i,j; for(i=1; i<5; i++) for(j=2; j<=i; j++) putchar('#'); } (11)以下程序的功能是调用函数fun计算:m=1-2+3-4+…+9-10,并输出结果。请填空。 int fun( int n) { int m=0,f=1,i; for(i=1; i<=n; i++) { m+=i*f; f= 〖11〗 ; } return m; } main() { printf("m=%d\n", 〖12〗 ); } (12)以下程序运行后的输出结果是 〖13〗 main() { int i,n[]={0,0,0,0,0}; for(i=1;i<=4;i++) { n[i]=n[i-1]*2+1; printf("%d ",n[i]); } } (13)以下程序运行后的输出结果是 〖14〗 main() { int i,j,a[][3]={1,2,3,4,5,6,7,8,9}; for(i=0;i<3;i++) for(j=i+1;j<3;j++) a[j][i]=0; for(i=0;i<3;i++) { for(j=0;j<3;j++) printf("%d ",a[i][j]); printf("\n"); } } (14)以下程序运行后的输出结果是 〖15〗 int a=5; fun(int b) { static int a=10; a+=b++; printf("%d ",a); } main() { int c=20; fun(c); a+=c++; printf("%d\n",a); } (15)请在以下程序第一行的下划线处填写适当内容,使程序能正确运行。 〖16〗 ( double,double); main() { double x,y; scanf("%lf%lf",&x,&y); printf("%lf\n",max(x,y)); } double max(double a,double b) { return(a>b ? a:b); } (16)以下程序运行后输入:3,abcde<回车>,则输出结果是 〖17〗 #include move(char *str, int n) { char temp; int i; temp=str[n-1]; for(i=n-1;i>0;i--) str[i]=str[i-1]; str[0]=temp; } main() { char s[50]; int n, i, z; scanf("%d,%s",&n,s); z=strlen(s); for(i=1; i<=n; i++) move(s, z); (资料来源:东方教育网 http://www.eastedu.com.cn) printf("%s\n",s); } (17)以下程序运行后的输出结果是 〖18〗 fun(int x) { if(x/2>0) fun(x/2); printf("%d ",x); } main() { fun(6); } (18)已有定义如下: struct node { int data; struct node *next; } *p; 以下语句调用malloc函数,使指针p指向一个具有struct node类型的动态存储空间。请填空。 p = (struct node *)malloc( 〖19〗 ); (19)以下程序的功能是将字符串s中的数字字符放入d数组中,最后输出d中的字符串。例如,输入字符串:abc123edf456gh,执行程序后输出:123456。请填空。 #include #include main() { char s[80], d[80]; int i,j; gets(s); for(i=j=0;s[i]!='\0';i++) if( 〖20〗 ) { d[j]=s[i]; j++; } d[j]='\0'; puts(d); } 2003年9月全国计算机等级考试二级C语言笔试试卷参考答案 一、选择题 (1) C (2) A (3) B (4) A (5) D (6) C (7) B (8) A (9) C (10)D (11)A (12)C (13)D (14)B (15)D (16)C (17)A (18)D (19)C (20)C (21)B (22)B (23)C (24)C (25)A (26)D (27)C (28)A (29)D (30)A (31)C (32)D (33)B (34)B (35)D (36)C (37)B (38)A (39)D (40)B (41)B (42)B (43)C (44)C (45)A (46)D (47)A (48)D (49)B (50)A 二、填空题 (1) 〖1〗 系统软件 (2) 〖2〗 TYPE B.TXT >> A.TXT (3) 〖3〗 基本服务 (4) 〖4〗 回收站 (5) 〖5〗 控制面板 (6) 〖6〗 3 (7) 〖7〗 b (8) 〖8〗 yes (9) 〖9〗 1 3 2 (10) 〖10〗 6 (11) 〖11〗 -f 〖12〗 fun(10) (12) 〖13〗 1 3 7 15 (13) 〖14〗 1 2 3 0 5 6 0 0 9 (14) 〖15〗 30 25 (15) 〖16〗 double max (16) 〖17〗 cdeab (17) 〖18〗 1 3 6 (18) 〖19〗 sizeof(struct node) (19) 〖20〗 s[i]>='0' && s[i]<='9' |
|
![]() ![]() |