收藏 分销(赏)

2024年江苏计算机等级考试.doc

上传人:精**** 文档编号:8191192 上传时间:2025-02-07 格式:DOC 页数:10 大小:45.04KB 下载积分:8 金币
下载 相关 举报
2024年江苏计算机等级考试.doc_第1页
第1页 / 共10页
2024年江苏计算机等级考试.doc_第2页
第2页 / 共10页


点击查看更多>>
资源描述
江苏省计算机等级考试 - 年 第 学期 c程序设计 试卷( ) 题号 一 二 三 四 五 六 七 八 九 总 分 得分 一、选择题(本题共20道小题,共40分。) 1. 如下程序运行后,输出成果是 main( ) { char *s="abcde"; s+=2; printf("%ld\n",s); } A)cde B)字符c的ASCII码值 C)字符c的地址 D)犯错 2. 下面程序的运行成果是 main() { char ch[7]={"65ab21"}; int i,s =0 for(i=0;ch[i]>='0'&&ch[i]<'9';i+=2) s=10*s+ch[i]-'0' printf("%d\n",s); } A)12ba56 B)6521 C)6 D)62 3. 若有阐明,double *p,a;则能通过scanf语句正确给输入项读入数据的程序段是 A)*p=&a; scanf("%lf",p); B)p=(double*)malloc(8);scanf("%f",p); C) p=&a;scanf("%lf",a); D)p=&a; scanf("%le",p); 4. 若要用下面的程序片段使指针变量p指向一个存储整型变量的动态存储单元: int *p; p=__________ malloc( sizeof(int)); 则应填入 A) int B) inst * C) (*int) D) (int *) 5. 若k是int型变量,且有下面的程序片段: k=-3 if(k<=0) printf("####") else printf("&&&&"); 上面程序片段的输出成果是 A) #### B) &&&& C) ####&&&& D) 有语法错误,无输出成果 6. 如下程序运行后,输出成果是 #include<stdio.h> #define PT 5.5 #define S(x) PT*x*x main( ) { int a=1,b=2; printf("%4.1f\n",S(a+b)) } A)49.5 B)9.5 C)22.0 D)45.0 7. 设有如下语句: struct st {int n; struct st *next;}; static struct st a[3]={5,&a[1],7,&a[2],9,'\0'},*p; p=&a[0]; 则体现式_____的值是6。 A)p + + ->n B) p->n + + C) (*p).n + + D) + + p->n 8. 当a=1,b=3,c=5,d=4时,执行下面一段程序后,x的值为 if(a<b) if(c<d)x=1; else if(a<c) if(b<d)x=2; else x=3; else x=6; else x=7; A)1 B)2 C)3 D)6 9. 下面程序的输出是 A) xyzabcABC B) zabcABC C) yzabcABC D) xyabcABC #include<stdio.h> #include<string.h> main() { char *p1="abc",*p2="ABC",str[50]="xyz"; strcpy(str+2,strcat(p1,p2)); printf("%s\n", str);} 10. 执行如下程序后,y的值是 main ( ) { int a[]={2,4,6,8,10}; int y=1,x,*p; p=&a[1]; for(x=0;x<3;x++) y + = * (p + x); printf("%d\n",y); } A) 17 B) 18 C) 19 D) 20 11. 设已经有定义: char *st="how are you"; 下列程序段中正确的是 A) char a[11], *p; strcpy(p=a+1,&st[4]); B) char a[11]; strcpy(++a, st); C) char a[11]; strcpy(a, st); D) char a[], *p; strcpy(p=&a[1],st+2); 12. 若有阐明:int i,j=7, *p=&i;,则与i=j;等价的语句是 A) I= *P; B) *P=*&J; C) i=&j; D) i=* *p; 13. 执行语句:for(i=1;i++<4;)后;变量i的值是 A)3 B)4 C)5 D)不定 14. 两次运行下面的程序,假如从键盘上分别输入6和4,则输出成果是 main( ) { int x; scanf("%d",&x); if(x + + >5) printf("%d",x); else printf("%d\n",x - -); } A) 7和5 B) 6和3 C) 7和4 D) 6和4 15. 有如下程序 int fun(int x,int y,int *cp,int *dp) {*cp=xy;*dp=x--y;} main() { int a,b,c,d; a=30;b=50; fun(a,b,&c,&d); printf("%d,%d\n",c,d); } 输出成果是 A)50,30 B)30,50 C)80,-20 D)80,20 16. 设有数组定义: char array [ ]="China"; 则数组 array所占的空间为 A) 4个字节 B) 5个字节 C) 6个字节 D) 7个字节 17. 如下程序运行后,输出成果是 fut(int **s, int p[2][3]) { **s=p[1][1]; } main() { int a[2][3]={1,3,5,7,9,11},*p; p=(int *)malloc(sizeof(int)); fut(&p,a); printf("%d\n",*p); } A)1 B)7 C)9 D)11 18. 设j为int型变量,则下面for循环语句的执行成果是 for(j=10;j>3;j--) { if(j%3)j--; --j;--j; printf("%d",j); } A)6 3 B)7 4 C)6 2 D)7 3 19. 设C语言中,一个int 型数据在内存中占2个字节,则unsigned int 型数据的取值范围为: A) 0-255 B) 1-32767 C) 0-65535 D) 0- 20. 设有如下定义: int (*ptr)*(); 则如下论述中正确的是 A)ptr是指向一维组数的指针变量 B)ptr是指向int型数据的指针变量 C)ptr是指向函数的指针,该函数返回一个int型数据 D)ptr是一个函数名,该函数的返回值是指向int型数据的指针 二、填空题(每空1分,共10分。) 1. C语言数组的下标总是从__________开始,不能够为负数;组成数组各个元素具备相同的__________。 2. 在C语言中(以16位PC机为例),一个char数据在内存中所占字节数为_______,一个int数据在内存中所占字节数为_______,一个long数据在内存中所占字节数为_______,一个float数据在内存中所占字节数为_______。 3. C程序是由________组成的,一个C程序中最少包括________ 。因此,________是C程序的基本单位。 4. 假定一个二维数组为a[M][N],则a[i]的地址值(以字节为单位)为 __________。 三、判断题(本题共10道小题,共10分。) 1. 若a是实型变量,C程序中允许赋值a=10,因此实型变量中允许存储整型数( ) 2. 全局变量使得函数之间的"耦合性"愈加快密,不利于模块化的要求( ) 3. 若调用一个函数,且此函数中没有return语句,则返回一个不确定的值( ) 4. 用户若需要调用标准库函数,调用前必须重新定义( ) 5. 函数调用:strcat(strcpy(str1,str2),str3)的功效是将串str2复制到串str1中后再将串str3连接到串str1之后( ) 6. 在实际编程中,do-while循环完全能够用for循环替代( ) 7. C程序的注释只能是一行( ) 8. 自增运算符(++)或自减运算符(--)只能用于变量,不能用于常量或体现式( ) 9. 在函数内的复合语句中定义的变量在本函数范围内有定义( ) 10. 一个变量在内存中占据一定的存储单元( ) 四、程序填空(本题共5道小题,每题4分,共20分。) 1. 如下程序统计从终端输入的字符中每个大写字母的个数。用#号作为输入结束标志,请填空。 #include <stdio.h> #include <ctype.h> main( ) { int num[26],i; char c; for(i=0; i<26; i++) num[i]=0; while( _________!='#') /*统计从终端输入的大写字母个数*/ if( isupper(c)) num[c-65]+=1; for(i=0; i<26; i++) /*输出大写字母和该字母的个数*/ if(num[i]) printf("%c:%d\n,i __________ , num[i]); } 2. 如下程序求a数组中的所有素数的和,函数isprime用来判断自变量是否为素数。素数是只能被1和自身整除且不小于1的自然数。 #include <stdio.h> main() { int i,a[10],*p=a,sum=0; printf("Enter 10 num:\n"); for(i=0;i<10;i + + ) scanf("%d",&a[i]); for(i=0;i<10;i + + ) if(isprime(*(p+ _______)) = = 1){ printf("%d",*(a+i)); sum+=*(a+i); } printf("\nThe sum=%d\n",sum); } isprime(x) int x; { int i; for(i=2;i<=x/2;i + + ) if(x%i = = 0) return (0); _________ ; } 3. 如下程序建立了一个带有头结点的单向链表,链表结点中的数据通过键盘输入,当输入数据为-1时,表示输入结束(链表头结点的data 域不放数据,表空的条件是ph->next = = NULL). #include<stdio.h> struct list { int data;struct list *next;}; _________creatlist() { struct list *p,*q,*ph; int a; ph=(struct list *) malloc(sizeof(struct list)); p=q=ph; printf("Input an integer number,enter -1 to end:\n"); scanf("%d",&a): while(a!=-1) { p=(struct list *)malloc(sizeof(struct list)); p->data=a; q->next=p; _________=p; scanf("%d",&a); } p->next='\0'; return(ph); } main() { struct list *head; head=creatlist();} 4. 设有如下程序: main() { int a, b, k=4, m=6, *p1=&k, *p2=&m; a=pl==&m; b=(*p1)/(*p2)+7; printf("a=%d\n",a); printf("b=%d\n",b); } 执行该程序后,a的值为_________,b的值为__________。 5. 如下程序调用invert函数按逆序重新放置a数组中元素的值。a数组中的值在main函数中读入。 #include <stdio.h> #define N 10 invert(s,i,j) int *s,i,j; { int t; if(i<j){ t=*(s+i); *(s+j)=(s+j);*(s+j)=t; invert(s, ________ ,j-1);}} main() { int a[N],i; for(i=0;i<N;i + + ) scanf("%d",a+ ____________ ); invert(a,0,N-1); for(i=0;i<N;i + + ) printf("%d",a[i]); printf("\n"); } 五、编程题(本题共2道小题,共20分。) 1. 计算1-1/2+1/3-1/4-...+1/99-1/100的值,并显示出来。 2. 从键盘输入一个5*5整型数组赋值,找出其中的最小值并显示出来。 江苏省计算机等级考试 - 年 第 学期 c程序设计 试卷(参考答案) 题号 一 二 三 四 五 六 七 八 九 总 分 得分 一、选择题(本题共20道小题,共40分。) 1. C 2. C 3. D 4. D 5. D 6. B 7. D 8. B 9. D 10. C 11. A 12. B 13. C 14. A 15. B 16. C 17. C 18. B 19. C 20. C 二、填空题(每空1分,共10分。) 1. 0 , 数据类型 2. 1 ,2 ,4 ,4 3. 函数 ,main() ,函数 4. a+i或*(a+i) 三、判断题(本题共10道小题,共10分。) 1. 错 2. 对 3. 对 4. 错 5. 对 6. 对 7. 错 8. 对 9. 错 10. 对 四、程序填空(本题共5道小题,每题4分,共20分。) 1. (c=getchar()) , +65 或 +'A' 2. I , return 1 或 return (1) 3. struct list * , q 4. 0 , 7 5. i+1 , i 五、编程题(本题共2道小题,共20分。) 1. #include "stdio.h" main() { int c,s; float ch; ch=0; for (c=1;c<100;c++) {if(c%2==0) s=-1; else s=1; ch+=s*(1/(float)c); } printf("sum=%f",ch); } 2. #include "stdio.h" main() { int i=0,j=0,Max=0; int but[5][5]; for(i=0;i<5;i++) for(j=0;j<5;j++) scanf("%d",&but[i][j]); scanf("%d",&but[i][j]); Max=but[0][0]; for(i=0;i<5;i++) for(j=0;j<5;j++) if (Max>but[i][j]) Max=but[i][j]; printf("最小值是%d",Max); }
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服