ImageVerifierCode 换一换
格式:DOCX , 页数:29 ,大小:26.29KB ,
资源ID:4013258      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/4013258.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(江苏等级考试二级C语言上机真题汇编.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

江苏等级考试二级C语言上机真题汇编.docx

1、江苏等级考试二级C语言上机真题汇编江苏省高等高等学校非计算机专业学生计算机基础知识和应用能力等级考试上机试卷二级 C语言 (本试卷完成时间 70分钟)一、改错题(16分)【程序功能】 输入两个正确日期且年份在1900-9999范围内,计算并输出两个日期之间间隔的天数。例如:2008-8-1和2009-8-1之间间隔的天数为365。 提示:被4整除并且不能被100整除的年份是闰年,能被400整除的年份也是闰年,其他年份则是平年。【测试数据与运行结果】 显示:first date: 输入:1980-2-1显示:second date: 输入:2009-8-1输出:10774 days【含有错误的源

2、程序】#include#define leap(int y) (y)%4=0&(y)%100!=0|(y)%400=0)struct d int y,m,d; ;int days(struct d d1, struct d d2) int mon213=0,31,28,31,30,31,30,31,31,30,31,30,31,0,31,29,31,30,31,30,31,31,30,31,30,31;int i; long td=0;for(i=d1.y;id2.y;i+) td=leap(i)?366:365;for(i=1;id1.m;i+) td- =monleap(d1.y)i;td

3、-=d1.d-1;for(i=1;id2.m;i+) td+=monleap(d2.y)i;td+=d2.d-1; return td;void main() struct d1,d2; puts(“n first date:”); scanf(“%d-%d-%d”,&d1.y,&d1.m,&d1.d); puts(“n second date:”); scanf(“%d-%d-%d”,&d2.y,&d2.m,&d2.d);printf(“%d days”,days(d1.y,d2.y); getch();【要求】1将上述程序录入到文件myf1.c中,根据题目要求及程序中语句之间的逻辑关系对程

4、序中的错误进行修改。2改错时,可以修改语句中的一部分内容,调整语句次序,增加少量的变量说明或编译预处理命令,但不能增加其他语句 ,也不能删去整条语句。3改正后的源程序(文件名为myf1.c)保存在T:盘根目录中功阅卷使用,否则不予评分。/*二 编程题(24分)【程序功能】 输入两个自然数P和Q(PQ),找出满足下列条件的整数组(K,M,N)。(1)PKMQ(2)K*K+M*M=N*N【编程要求】1.编写函数int chlm(int p,int q,int a 3)实现以下功能:查找K,M在p,q范围内取值且满足以上条件的所有整数组(K,M,N)。若找到则将这些整数组保存到a指向的数组中,函数返

5、回找到的整数组的组数。若找不到则函数返回0。2.编写函数main实现以下功能:声明二维数组a和变量p、q,输入两个自然数并保存到p和q中(pq),调用chlm函数在p,q范围内查找满足以上条件的整数组。若找不到则在屏幕上输出“out found”,否则将查找结果保存到a数组中,输出a数组数据到屏幕及文件myf2.out中。最后将考生本人的准考证号输出到文件myf2.out中。【测试数据与运行结果】输入: p=12 q=38输出12 16 2012 35 37 15 20 2515 36 39 16 30 3418 24 3020 21 2921 28 3524 32 4024 36 45*/江

6、苏省高等高等学校非计算机专业学生计算机基础知识和应用能力等级考试上机试卷二级 C语言 (本试卷完成时间 70分钟)/*一 改错题(16分)【程序功能】函数dtoh实现将参数num的值表示为一个十六进制形式的字符串,并将该字符串存储在一个动态申请的存储区内,函数返回动态存储区的起始地址。【测试数据及运行结果】输入:1234输出:4d2含有错误的源程序*/#include#includechar dtoh(unsigned num) char digits=”0123456789abcdef”; char *s; int n=0; unsigned un=num; while(un) n+; un

7、/=16; s=(char*)malloc(n+1)*sizeof(char); if(s=null) printf (“Memory request failed!n”);exit(1); sn-=”0”;while(num) sn-=digitsnum/16; /*取一位十六进制数字字符*/ num/=16;return s;void main() char *p; unsigned n; scanf(“%u”,&n); p=dtoh(n); printf(“%s”,p);free(p); getch();【要求】1.将上述程序录入到文件myf1.c中,根据题目要求及程序中语句之间的逻辑关

8、系对程序中的错误进行修改。2.改错时,可以修改语句中的一部内容,调整语句次序,增加少量的变量说明或编译预处理命令,但不能增加其他语句,也不能删去整条语句。3.改正后的源程序(文件名myf1.c)保存在T:盘根目录共阅卷使用,否则不予评分。二、编程题(24分)【程序功能】在给定的范围内查找并输出所有满足以下条件的整数对(a,b)及与(a,b)关联的反序数对(c,d):(1)a小于b:(2)a和b的十进制表示均是三位数且各位上的数字互不相同;(3)a的反序数(记作c)和b的反序数(记作d)也都是三位数并且ab等于cd。例如,与整数对(302,406)关联的反序数对是(203,604),302406

9、=203604,因此(302,406)是满足上述条件的整数对。【编程要求】1.编写函数int find(int x4,int m,int n)实现以下功能:若m和n的十进制表示不是三位数则函数返回0。否则,将取值在m,n范围内所有满足上述条件的整数对以及与这些整数对关联的反序数对保存到x指向的二维数组中,函数返回x数组中保存的数据行数。2.编写函数main实现以下功能:声明一个100行4列的二维数组a,用a数组作实参调用find函数在300,450范围内查找,将找到的满足上述条件的整数对及关联的反序数对保存到a数组。按以下格式将a数组中数据输出到屏幕及文件myf2.out中。最后将考生本人准考

10、证输出到文件myf2.out中。【测试数据与运行结果】输出: 301*309=103*903 302*406=203*604 304*403=403*304 306*402=603*204 312*426=213*624 314*413=413*314 321*369=123*963 324*423=423*324 402*408=204*804 412*428=214*824【要求】1.源程序文件为myf2.c,输出结果文件名myf2.out。2.数据文件的打开、使用、关闭均使用C语言标准库中缓冲文件系统操作函数实现。3.源程序文件和运行结果均需要保存T:盘根目录中供阅卷使用。4.不要复制扩

11、展名为obj和exe的文件到T:盘中。江苏省高等高等学校非计算机专业学生计算机基础知识和应用能力等级考试上机试卷二级 C语言 (本试卷完成时间 70分钟)一、改错题(16分)【程序功能】对一个二维数组中的数据排序。排序规则如下:将整个数组中值最小的元素所在行调整为数组第1行(行下标为0),将除第1行外剩余行中值最小的元素所在行调整为数组第2行,将除第1、2行外剩余行中值最小的元素所在行调整为数组第3行,其他依此类推。【测试数据与运行结果】数组初始化数据: 输出:3 4 5 6 8 2 1 08 2 1 0 1 2 3 4 5 4 3 2 5 4 3 21 2 3 4 3 4 5 6【含有错误的

12、源程序】#include “stdio.h”int getmin(int a,int n) int i,min=a0; for(i=1;imin) min=ai; return min;void lineswap(int a,int b,int *n) int i, t; for(i=0;in;i+) t=ai; ai=bi; bi=t; void main() int a4=3,4,5,6,8,2,1,0,5,4,3,2,1,2,3,4,i,j; for(i=0;i3;i+) for(j=1;j4;j+) if(getmin(aj,4)getmin(ai,4) lineswap(aj,int

13、 ai,4); for(i=0;i4;i+) for(j=0;j4;j+)printf(“%d “,aij); printf”n”);getch();【要求】1.将上述程序录入到文件myf1.c中,根据题目要求及程序中语句之间的逻辑关系对程序中的错误进行修改。2.改错时,可以修改语句中的一部分内容,调整语句次序,增加少量的变量说明或编译预处理命令,但不能增加其他语句 ,也不能删去整条语句。3.改正后的源程序(文件名为myf1.c)保存在T:盘根目录中功阅卷使用,否则不予评分。二、编程题(24分)【程序功能】计算由两个整数生成的两个合法代码的码距。这里的合法代码定义为由16个二进制数字字符组成的

14、字符串。例如“0000000000100101”是一个合法代码。码距是指两个合法代码中对应位数字字符不同的位数。例如,合法代码”0000000000100101”和”0000000000001110”自又向左1、2、4、6位上具有不同数字字符,因此这两个合法代码的码距为4。【编程要求】1.编写函数int hamming(int x,int y,chara ,char b )实现以下功能:先将形参x和y分别转换为2个合法代码并按从低位到高位的顺序分别保存2个合法代码到a和b指向的数组中(不足16位时高位补字符0)再计算a数组和b数组中的两个合法代码的码距,函数返回该码距。2.编写函数main 实

15、现以下功能:声明字符数组a 、b和变量m、n,输入两个整数并保存到m和n中,若m、n的值在032767范围内则用m、n和数组a、b作实参调用hamming函数,计算由m和n生成的两个合法代码的码距,将a、b数组中存储的合法代码及这两个代码的码距输出到屏幕及文件myf2.out中。最后将考生本人的准考证输出到文件myf2.out中。.【测试数据与运行结果】输入:m=16 n=38输出: a:0000000000010000 b:0000000000001000 distance of 16 and 8 is 2【要求】1.源程序文件为myf2.c,输出结果文件名myf2.out。2.数据文件的打

16、开、使用、关闭均使用C语言标准库中缓冲文件系统操作函数实现。3.源程序文件和运行结果均需要保存T:盘根目录中供阅卷使用。4.不要复制扩展名为obj和exe的文件到T:盘中。江苏省高等高等学校非计算机专业学生计算机基础知识和应用能力等级考试上机试卷二级 C语言 (本试卷完成时间 70分钟)一、改错题(16分)【程序功能】将一个实数转换为二进制科学计数法表示并输出。二进制科学记数法是指将一个绝对值大于2或者小于1的实数记为a2n形式,其中尾数a是用二进制表示的实数且1|a|2, 指数中的n是用二进制表示的整数。例 如:0.125的科学计算法表示是1.02-11若用B代表基数2,则a2n可表示为aB

17、n 的形式。例如,1.02-11表示1.0B-11。【测试数据与运行结果】第一次运行时输入:0 输出:0.0B0第二次运行时输入:0.125 输出:1.0B-11第三次运行时输入:315 输出:1.00111011B+1000【含有错误的源程序】#include void outBinary(int x) if(x/2) outBinary(x/2); printf(“%d”,x%2);void outFloatBinary(float x) int e=0; if(x=0) puts(0.0B0);return; if(x=2.0) e+;x/=2; while(x0) printf(“B+

18、”); outBinary(e); else printf(“B-”); outBinary(-e); printf(“n”);void main() float a;scanf(“%f”,&a); outFloatBinary(a);getch();【要求】1.将上述程序录入到文件myf1.c中,根据题目要求及程序中语句之间的逻辑关系对程序中的错误进行修改。2.改错时,可以修改语句中的一部分内容,调整语句次序,增加少量的变量说明或编译预处理命令,但不能增加其他语句 ,也不能删去整条语句。3.改正后的源程序(文件名为myf1.c)保存在T:盘根目录中功阅卷使用,否则不予评分。二、编程题(24分

19、)【程序功能】求3000以内的亲密数对.如果A的全部真因子(包括1,不包括A自身)之和等于B;B的全部真因子之和等于A,则称整数A和B为一对亲密数。【编程要求】1.编写函数int frinum(long s2,long n)实现如下功能:找到2n分范围内的所有亲密数对,将这些亲密数对保存到s指向的二维数组中。返回函数s数组中存储的亲密数对的对数。2.编写函数main 实现以下功能:声明二维数组s和变量n,输入一个正整数并保存到n中,用二维数组s和变量n作为实参调用frinum函数,将n以内的所有的亲密数对输出到屏幕及文件myf2.out中。最后将考生本人的准考证输出到文件myf2.out.【测

20、试数据与运行结果】输入: n=3000输出: (220,284) (1184,1210) (2620,2924)【要求】1.源程序文件为myf2.e,输出结果文件名myf2.out。2.数据文件的打开、使用、关闭均使用C语言标准库中缓冲文件系统的文件操作函数实现。3.源程序文件和运行结果均需要保存T:盘根目录中供阅卷使用。4.不要复制扩展名为obj和exe的文件到T:盘中。江苏省高等高等学校非计算机专业学生计算机基础知识和应用能力等级考试上机试卷二级 C语言 (本试卷完成时间 70分钟)一、改错题(16分)【程序功能】函数replace的功能是用s2指向的字符串替换s1指向的字符串中第n个字符

21、(下标为n-1)之后到第m个字符(下标为m-1)之前的m-n-1个字符组成的字串(mn+1)。例如,若s1指向的字符串为“abcd”、s2指向的字符串为“xyz”、n=1、m=3,则执行替换操作后s1指向的字符串为“axyzcd”。【测试数据与运行结果】显示: s1=qwertyuiop s2=zxc input n,m;输入: 1 9输出: qzxcop【含有错误的源程序】#include #includevoid replace(char s1,int n,int m,char s2) char s80 int i,j,len1,len2,len;len1=strlen(s1); len2

22、=strlen(s2);if(mn+1&nlen1&m=len1) for(i=0;in;i+) si=s1i; for(j=0;jlen2;j+,i+) si=s2j; si=0; len=strlen(s);for(i=0;s1m-1+i!=0;i+) slen+i= s1m-1+i;slen+i=0;for(i=0;si!=0;i+) si=s1i; s1i=0;void main() char s180=” qwertyuiop”,s220=”zxc”; int n,m; puts(“s1=%s s2=%sn”,s1,s2); puts(“input n,m:”); scanf(“%d

23、%d”,n,m); replace(s1,n,m,s2); puts(s1); getch();【要求】1.将上述程序录入到文件myf1.c中,根据题目要求及程序中语句之间的逻辑关系对程序中的错误进行修改。2.改错时,可以修改语句中的一部分内容,调整语句次序,增加少量的变量说明或编译预处理命令,但不能增加其他语句 ,也不能删去整条语句。3.改正后的源程序(文件名为myf1.c)保存在T:盘根目录中功阅卷使用,否则不予评分。二、编程题(24分)【程序功能】用乌勒姆公式an=n2-n+41(n=1,2,m)生成一个数列的前m项并找出其中的回文数。【编程要求】1.编写函数int numseq(lon

24、g a,long b,int m)实现以下功能:用乌勒姆公式生成一个数列的前m项并保存到a指向的数组中,从a数组中找出所有回文数保存到b指向的数组中,函数返回b数组中回文数个数。2.编写函数main 实现以下功能:声明一维数组a,b和变量m; 输入数列的项数并保存到m,用数组a、b和变量m作为实参调用numseq函数,将生成的数列前m项以及其中的回文数分别保存到a和b数组中;按每行10个数据的格式将a、b数组中的数据输出到屏幕及文件myf2.out中。最后将考生本人的准考证输出到文件myf2.out。【测试数据与运行结果】输入: m=20输出: a:41 43 47 53 61 71 83 9

25、7 113 131 151 173 197 223 251 281 313 347 383 421 b:131 151 313 383【要求】1.源程序文件为myf2.c,输出结果文件名myf2.out。2.数据文件的打开、使用、关闭均使用C语言标准库中缓冲文件系统的文件操作函数实现。3.源程序文件和运行结果均需要保存T:盘根目录中供阅卷使用。4.不要复制扩展名为obj和exe的文件到T:盘中。江苏省高等高等学校非计算机专业学生计算机基础知识和应用能力等级考试上机试卷二级 C语言 (本试卷完成时间 70分钟)一、改错题(16分)【程序功能】已知指针数组name保存了n个字符串的首地址。以下程序

26、通过调整指针数组元素的值实现按字典序对n个字符串排序; 输出排序后指针数组各元素指向的字符串;删除指针数组中以元音字母开头的所有字符串首地址;输出指针数组各元素指向的字符串。【测试数据与运行结果】数组初始化数据: “Mary”,”George”,”Andy”,”Tom”,”Iris”输出: Andy George Iris Mary Tom George Mary Tom【含有错误的源程序】#include #include#includevoid sort(char*name,int n) char *ptr; int i,j,k;for(i=0;in-1;i+) k=i; for(j=i+

27、1;j0) k=j; if(k=i) ptr=namei,namei=namek,namek=ptr; int delstr(char *name,int n) int i,j,k; char c,s5=A,E,O,I,U,*P; for(i=0;in;i+) p=namei; c=p;c=toupper(c); /*toupper(c):若c是小写则返回对应大写字母,否则返回c原值*/ for(k=0;k=5) for(j=i;jn-1;j+)namej=namej+1; n-;i-;return n;void print(char*name,int n) int i;for(i=0;in;

28、i+)printf(“%s “,namei);printf(“n”);void main() int n=5; char *namen=“Mary”,”George”,”Andy”,”Tom”,”Iris”; sort(name,n); print (name,n); n=delstr(name,n); print(name,n); getch();【要求】1.将上述程序录入到文件myf1.c中,根据题目要求及程序中语句之间的逻辑关系对程序中的错误进行修改。2.改错时,可以修改语句中的一部分内容,调整语句次序,增加少量的变量说明或编译预处理命令,但不能增加其他语句 ,也不能删去整条语句。3.改正后的源程序(文件名为myf1.c)保存在T:盘根目录中功阅卷使用,否则不予评分。二、编程题(24分)【程序功能】输入两个正整数x和y(2x100,2y1000,找出所有满足下列条件

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1