2022年江苏省高校计算机等级考试二级C语言上机真题答题要点 .pdf
《2022年江苏省高校计算机等级考试二级C语言上机真题答题要点 .pdf》由会员分享,可在线阅读,更多相关《2022年江苏省高校计算机等级考试二级C语言上机真题答题要点 .pdf(17页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、【上机题命题及答题要点】1、 近年来江苏省高校上机题目难度有所下降。本轮上机命题的难度系数与全国计算机等级考试二级C语言接近。2、 改错题通常有34 个错误。错误分为两大类,一类是语法出错,这类错误比较查错和容易修改,即在编译时报的错误。另一类是结果出错,即程序的算法出错,这类错误需认真审题。3、 编程题必须掌握C 语言的文件,应熟悉文件指针的定义,文件的打开及文件的输入输出。编程题的固定框架。必须记忆。以C01 的编程为例。#include /* 库函数 exit(0) 需要 */ #include /* 定义文件指针时需要的头文件*/ .int palindrome(char *str,
2、char *r) void main() FILE *fp 。所有数据类型的说明和定义 if(fp=fopen(t:myf2.out,w)=NULL) printf(nCant open the file!)。 exit (0) 。 函数调用(具体问题具体分析)结果输出printf(nMy number is:120992340n)。 fprintf(fp,nMy number is:1292340n)。 fclose(fp) 。 4、 必须熟悉常用算法。5、 江苏省高校计算机二级C 语言上机编程题常考问题:字符串相关问题、素数相关问题、回文数相关问题、矩阵(二维数组)相关问题、特殊数问题(如
3、,合数、真因子或质因子之和、水仙花数、亲密数、完数、数制转换、哥德巴赫猜想等)。6、掌握文件输出操作标准形式。【2013年 3 月江苏省等考上机真题解读】函数编程,按【编程要求】 1.编写函数int palindrome(char *str, char *r) 。. 要点:函数首部完整照抄。参数为指针时,若对指针不熟悉,在函数体内可以按数组编程。精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 1 页,共 17 页江苏省高等学校非计算机专业学生(C01) 计算机基础知识和应用能力等级考试上机试卷二级 C语言(试卷代号 C01) (本试卷完成时间 70
4、分钟)一、改错题(16 分)【程序功能】判断一个NN 方阵( N 为奇数)是否为魔方阵。魔方阵的判定条件是:方阵中每行、每列、主对角线及副对角线上的数据之和均相等。例如,以下方阵中,主对角线的数据是8、5、2 之和是15,副对角线上的数据6、5、4 之和也是15,并且每行、每列数据之和15,因此该项方阵是魔方阵。8 1 6 3 5 7 4 9 2 【测试数据与运行结果】屏幕输出: 8 1 6 3 5 7 4 9 2 The Array x is a magic square. 1 2 3 5 6 4 9 8 7 The Array x isn t a magic square.【含有错误的源程
5、序】以下源程序已保存在T 盘 myf1.c 文件内,考生可直接打开该文件测试程序。#include #include #include #define N 3 void fun(int (*a)N) int i,j,m1,m2,row,colum。 m1=m2=0。 for(i=0 。 iN 。 i+) m1+=aii。 m2+=aiN-i-1。 if(m1!=m2) return 0 。 for(i=0 。 iN 。 i+) row=colum=i 。 for(j=0 。 jN。 j+) row+=aij。 colum+=aji 。 if(row!=colum)|(row!=m1) retu
6、rn 0。 return 1。精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 2 页,共 17 页 void print(int xN) int i,j 。 for(i=0 。 iN 。 i+) for(j=0 。 jN 。 j+) printf(%3d,xij)。 printf(n) 。 int main() int xN,N=8,1,6,3,5,7,4,9,2,yN,N=1,2,3,5,6,4,9,8,7。 print(x) 。 if(fun(x) printf(The Array x is a magic square.n)。 else pr
7、intf(The Array x isnt a magic square.n) 。 print(y) 。 if(fun(y) printf(The Array y is a magic square.n)。 else printf(The Array y isnt a magic square.n) 。 getch()。 return 0。 【要求】1.打开 T 盘中 myfl.c 文件或将上述程序录入到myf1.c 文件中,根据题目要求及程序中语句之间的逻辑关系对程序中的错误进行修改。2.改错时,可以修改语句中的一部分内容,调整语句次序,增加少量的变量说明或编译预处理命令,但不能增加其它语句
8、,也不能删去整条语句。3.改正后的源程序(文件名myfl.c )保存在T 盘的根目录中供阅卷使用,否则不予评分。【解读】#include #include /* 该头文件是调用getch()函数需要的 */ #include #define N 3 int fun(int (*a)N) /1、函数要求调用有返回值,void fun(int (*a)N)函数类型设置错误 int i,j,m1,m2,row,colum。 m1=m2=0 。 for(i=0 。 iN 。 i+) m1+=aii。 m2+=aiN-i-1。 if(m1!=m2) return 0 。 for(i=0 。 iN 。 i
9、+) row=colum=i 。 for(j=0 。 jN 。 j+) row+=aij。 colum+=aji 。 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 3 页,共 17 页 if(row!=colum)&(row!=m1) /2、逻辑表达式出错:(row!=colum)|(row!=m1) return 0。 return 1。 void print(int xN) int i,j 。 for(i=0 。 iN。 i+) for(j=0 。 jN。 j+) printf(%3d,xij)。/3、输出格式出错:printf(%3d,xi
10、j )。 printf(n) 。 int main() int xNN=8,1,6,3,5,7,4,9,2,yNN=1,2,3,5,6,4,9,8,7。 /4、数组下标定义出错:xN,N 和 yN,N print(x) 。 if(fun(x) printf(The Array x is a magic square.n)。 else printf(The Array x isnt a magic square.n)。 print(y) 。 if(fun(y) printf(The Array y is a magic square.n)。 else printf(The Array y isn
11、t a magic square.n)。 getch()。 return 0。 二、编程题(24 分)【程序功能】检查一个字符串中中所有数字字符所对应整数(例如,字符1所对应的整数为1,其他依次类推)之和是否为3 的倍数;判断该字符串是否回文字符串(回文字符串:正序和倒序相同的字符串。例如,ab121ba是回文字符串)。【编程要求】1、编写函数int palindrome(char *str, char *r) 。函数功能:检查 str 指向的字符串中所有数字字符所对应的整数之和是否为3 的倍数,若是则将yes存储到r 指向的数组中,否则将no存储到r 指向的数组中 .判断 str 指向的字符
12、串是否是回文字符串,若是则函数返回1,否则返回0。2、编写函数main()。函数功能:声明字符型数组a和 r,输入一个字符串到a数组,用a、 r 作实寻调用 palindrome 函数,若字符串中所有数字字符所对应的整数之和是3 的倍数且字符串双是回文字符串,则输出该字符串及yes 到屏幕及数据文件myf2.out 中,否则输出no 到屏幕及数据文件myf2.out 中。最后将考生本人的准考证号字符串输出到文件myf2.out 中。【测试数据与运行结果】测试数据: 33abbba66 屏幕输出: no 测试数据: 12abcba21 屏幕输出: yes 精选学习资料 - - - - - - -
13、 - - 名师归纳总结 - - - - - - -第 4 页,共 17 页【要求】1.源程序文件名为myf2.c ,输出结果文件名为myf2.out 。2.数据文件的打开、使用、关闭均用C 语言标准库中文件操作函数实现。3.源程序文件和运行结果文件均需保存到T 盘上,供阅卷使用。4.不要复制扩展名为obj 和 exe的文件到T 盘上。【编程题解题思路】编程的关键是知道库函数所需要的相应的头文件名。除主函数和函数palindrome 外,根据C 语言模块化设计特点,增加了能判断一串字符串是否是回文字符串的自编函数int Judger(char a) ,其中判断回文字符串的函数必须要熟记之,与此同
14、时也要记住判断回文数 (data_palindrome)和回文素数的通用函数:#include int data_palindrome(long s) long k=s,h=0 。 while(k) h=h*10+k%10,k/=10 。 if(h=s) return 1 。 return 0。 int main() long a 。 scanf(%ld,&a) 。 if(data_palindrome(a) printf(%ld is palindrome,a)。 else printf(%ld isnt palindrome,a)。 【编程题解答: myf2.c】#include #inc
15、lude /库函数 strlen() 需要#include /库函数 isdigit() 、strcpy()需要,书P386int Judger(char a) /判断字符串a是否是回文字符串的通用函数 int n=0,i,j 。 n=strlen(a)。 for(i=0,j=n-1 。ij 。i+,j-) if(ai!=aj) return 0。 return 1。 int palindrome(char *str, char *r) int i=strlen(str)-1,j=0,m=0。精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 5 页,
16、共 17 页 while(stri!=-1) /计算字符串str 中数字字符的数字量值之和 if(isdigit(stri) m+=(stri-48) 。 i-。 if(m%3=0&Judger(str) /满足字符串的数字量之和是3 的倍数和回文字符串时返回1,并将 yes存入数组元素 strcpy(r,yes) 。j+ 。 return 1。 else /不满足字符串的数字量之和是3 的倍数和回文字符串时返回0,并将 no存入数组元素 strcpy(r,no) 。 j+。 return 0。 void main() FILE *fp 。int i 。char a210=33abbba66,
17、12abcba21,r210。 if(fp=fopen(t:myf2.out,w)=NULL) printf(nCant open the file!)。 exit (0)。 for(i=0 。i2。i+) if(palindrome(ai,ri) printf(n%sn%s,ai,ri),fprintf(fp,n%sn%s,ai,ri)。 else printf(n%sn%s,ai,ri),fprintf(fp,n%sn%s,ai,ri)。 printf(nMy number is:120992340n)。fprintf(fp,nMy number is:1292340n)。 fclose(
18、fp) 。 /*操作结束,关闭文件fp */ 蓝色的内容需记忆,并且printf函数与 fprintf函数写在一起,用逗号分隔,这样程序不容易江苏省高等学校非计算机专业学生(C04) 计算机基础知识和应用能力等级考试上机试卷二级 C语言(试卷代号 C04) (本试卷完成时间 70分钟)一、改错题(16 分)【程序功能】子串查找并替换。函数 substition 的功能是在s 指向的字符串(简称s 串)中查找t 指向的子串(简称t串),并用 g指向的字符串(简称g串)替换 s串中所有的 t 串。【测试数据与运行结果】测试数据: s: aaacdaaaaaaaefaaaghaa t: aaa g:
19、 22屏幕输出: 22cd2222aef22ghaa 【含有错误的源程序】以下源程序已保存在T 盘 myf1.c 文件内,考生可直接打开该文件测试程序。精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 6 页,共 17 页#include #include #include void substitution(char*,char*,char*)。int main() char s80= aaacdaaaaaaaefaaaghaa,t2=aaa,g=22 。 puts(s)。 substitution(s,t,g) 。 puts(s)。 getch(
20、)。 void substitution(char *,char *,char *) 。 int i,j,k 。 char temp80。 for(i=0 。si=0 。 i+) for(j=i,k=0 。sj=tk&tk!=0。j+,k+) 。 if(tk=0) temp=s+j 。 strcpy(s+i,g) 。 strcat(s,temp)。 i+=strlen(g)-1 。 【要求】1打开 T 盘中 myfl.c 文件或将上述程序录入到myf1.c 文件中,根据题目要求及程序中语句之间的逻辑关系对程序中的错误进行修改。2 改错时,可以修改语句中的一部分内容,调整语句次序,增加少量的变量
21、说明或编译预处理命令,但不能增加其它语句,也不能删去整条语句。3 改正后的源程序(文件名myfl.c )保存在T 盘的根目录中供阅卷使用,否则不予评分。二、编程题(24 分)【程序功能】在一组数值不全全的整数中查找次大数。【编程要求】1、编写函数int findsecmax(int data, int count)。函数功能:在data数组的前count 个整数中查找次大数。2、编写函数main()。函数功能:声明一个整型数组a 并用测试数据初始化,用数组a 及数组元素个数作实参调用findsecmax 函数找出次大数,然后将原数组及次大数输出到屏幕及数据文件myf2.out 中。最后将考生本
22、人的准考证号字符串输出到文件myf2.out 中。【测试数据与运行结果】测试数据: 1,9,2,8,3,7,4,6,10,10 屏幕输出:1 9 2 8 3 7 4 6 10 10 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 7 页,共 17 页Sec_max: 9 【要求】1.源程序文件名为myf2.c,输出结果文件名为myf2.out 。2.数据文件的打开、使用、关闭均用C 语言标准库中文件操作函数实现。3.源程序文件和运行结果文件均需保存到T 盘上,供阅卷使用。4.不要复制扩展名为obj 和 exe的文件到T 盘上。【改错题解答: myf
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年江苏省高校计算机等级考试二级C语言上机真题答题要点 2022 江苏省 高校 计算机等级考试 二级 语言 上机 答题 要点
限制150内