2022年江苏省高校计算机等级考试二级C语言上机真题答题要点.docx
《2022年江苏省高校计算机等级考试二级C语言上机真题答题要点.docx》由会员分享,可在线阅读,更多相关《2022年江苏省高校计算机等级考试二级C语言上机真题答题要点.docx(24页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精品学习资源【上机题命题及答题要点】1、 近年来江苏省高校上机题目难度有所下降;本轮上机命题的难度系数与全国运算机等级考试二级C语言接近;2、 改错题通常有 34 个错误;错误分为两大类,一类是语法出错,这类错误比较查错和简洁修改,即在编译时报的错误 ;另一类是结果出错,即程序的算法出错,这类错误需仔细审题;3、 编程题必需把握C 语言的文件,应熟识文件指针的定义,文件的打开及文件的输入输出;编程题的固定框架;必需记忆;以C01 的编程为例;#include /*库函数 exit0 需要 */#include /*定义文件指针时需要的头文件*/函数编程,按【编程要求】1.编写函数 int pa
2、lindromechar *str, char *r;.要点:函数首部完整照抄;参数为指针时,如对指针不熟识, 在函数体内可以按数组编程; .int palindromechar *str, char *rvoid mainFILE *fp;全部数据类型的说明和定义iffp=fopent:myf2.out,w=NULLprintfnCant open the file.; exit 0 ;函数调用(详细问题详细分析) 结果输出printfnMy number is:120992340n;fprintffp,nMy number is:1292340n;fclosefp ;4、 必需熟识常用算法
3、;5、 江苏省高校运算机二级C 语言上机编程题常考问题:字符串相关问题、素数相关问题、回文数相关问题、矩阵(二维数组)相关问题、特别数问题(如, 合数、真因子或质因子之和、水仙花数、亲热数、完数、数制转换、哥德巴赫猜想等);6、把握文件输出操作标准形式;【2021 年 3 月江苏省等考上机真题解读】欢迎下载精品学习资源江苏省高等学校非运算机专业同学 C01运算机基础学问和应用才能等级考试上机试卷二级C 语言试卷代号 C01(本试卷完成时间70 分钟)一、 改错题(16 分)【程序功能】判定一个 NN 方阵( N 为奇数)是否为魔方阵;魔方阵的判定条件是:方阵中每行、每列、主对角线及副对角线上的
4、数据之和均相等;例如,以下方阵中,主对角线的数据是8、5 、2 之和是 15,副对角线上的数据6、5、4 之和也是15,并且每行、每列数据之和15,因此该项方阵是魔方阵;816357492屏幕输出:8 16357492The Array123564987【测试数据与运行结果】x is a magic square.The Array x isn t a magic square.【含有错误的源程序】以下源程序已储存在 T 盘 myf1.c 文件内,考生可直接打开该文件测试程序;#include #include #include #define N 3void funint *aN int i
5、,j,m1,m2,row,colum ;m1=m2=0 ;fori=0 ; iN ; i+ m1+=aii ;m2+=aiN-i-1 ;ifm1.=m2 return 0 ;fori=0 ; iN ; i+ row=colum=i;forj=0 ; jN ; j+row+=aij;colum+=aji;ifrow.=colum|row.=m1 return 0;return 1;欢迎下载精品学习资源void printint xN int i,j ;fori=0 ; iN ; i+forj=0 ; jN ; j+ printf%3d,xij;printfn ;int main int xN,N
6、=8,1,6,3,5,7,4,9,2,yN,N=1,2,3,5,6,4,9,8,7;printx ;iffunx printfThe Array x is a magic square.n;else printfThe Array x isnt a magic square.n;printy ;iffuny printfThe Array y is a magic square.n;else printfThe Array y isnt a magic square.n;getch;return 0;【要求】1. 打开 T 盘中 myfl.c 文件或将上述程序录入到myf1.c 文件中,依据题
7、目要求及程序中语句之间的规律关系对程序中的错误进行修改;2. 改错时,可以修改语句中的一部分内容,调整语句次序,增加少量的变量说明或编译预处理命令,但不能增加其它语句,也不能删去整条语句;3. 改正后的源程序(文件名myfl.c )储存在 T 盘的根目录中供阅卷使用,否就不予评分;【解读】#include #include #include #define N 3/*该头文件是调用 getch 函数需要的 */int funint *aN/1、函数要求调用有返回值,void funint *aN函数类型设置错误int i,j,m1,m2,row,colum;m1=m2=0 ;fori=0 ;
8、iN ; i+ m1+=aii;m2+=aiN-i-1;ifm1.=m2 return 0 ;fori=0 ; iN ; i+ row=colum=i;forj=0 ; jN ; j+row+=aij;colum+=aji;欢迎下载精品学习资源ifrow.=colum&row.=m1/2、规律表达式出错: row.=colum|row.=m1 return 0 ;return 1;void printint xN int i,j ;fori=0 ; iN ; i+forj=0 ; jN ; j+printf%3d,xij;/3、输出格式出错: printf%3d,xij ;printfn ;i
9、nt mainint xNN=8,1,6,3,5,7,4,9,2,yNN=1,2,3,5,6,4,9,8,7; /4、数组下标定义出错: xN,N 和 yN,Nprintx ;iffunx printfThe Array x is a magic square.n;else printfThe Array x isnt a magic square.n;printy ;iffuny printfThe Array y is a magic square.n;else printfThe Array y isnt a magic square.n;getch ;return 0;二、 编程题(2
10、4 分)【程序功能】检查一个字符串中中全部数字字符所对应整数(例如,字符1所对应的整数为1,其他依次类推)之和是否为3 的倍数;判定该字符串是否回文字符串(回文字符串:正序和倒序相同的字符串;例如, ab121ba 是回文字符串);【编程要求】1、编写函数 int palindromechar*str, char *r ;函数功能: 检查 str 指向的字符串中全部数字字符所对应的整数之和是否为3 的倍数,如是就将yes 储备到 r 指向的数组中,否就将no 储备到 r 指向的数组中 . 判定 str 指向的字符串是否是回文字符串,如是就函数返回1,否就返回0;2、编写函数 main ;函数功
11、能:声明字符型数组a 和 r,输入一个字符串到a 数组,用 a、 r 作实寻调用 palindrome 函数,如字符串中全部数字字符所对应的整数之和是3 的倍数且字符串双是回文字符串,就输出该字符串及yes 到屏幕及数据文件myf2.out中,否就输出 no 到屏幕及数据文件myf2.out 中;最终将考生本人的准考证号字符串输出到文件myf2.out 中;【测试数据与运行结果】 测试数据: 33abbba66 屏幕输出: no测试数据: 12abcba21屏幕输出: yes欢迎下载精品学习资源【要求】1. 源程序文件名为 myf2.c ,输出结果文件名为myf2.out ;2. 数据文件的打
12、开、使用、关闭均用C 语言标准库中文件操作函数实现;3. 源程序文件和运行结果文件均需储存到T 盘上,供阅卷使用;4. 不要复制扩展名为obj 和 exe 的文件到 T 盘上;【编程题解题思路】编程的关键是 知道库函数所需要的相应的头文件名; 除主函数和函数palindrome 外,依据 C 语言模块化设计特点,增加了能判定一串字符串是否是回文字符串的自编函数int Judgerchar a ,其中判定回文字符串的函数必需要熟记之,与此同时也要记住判定回文数 data_palindrome 和回文素数的通用函数:#include int data_palindromelong s long k
13、=s,h=0 ;whilek h=h*10+k%10,k/=10 ;ifh=s return 1 ;return 0;int main long a ;scanf%ld,&a ;ifdata_palindromea printf%ld is palindrome,a;else printf%ld isnt palindrome,a;【编程题解答: myf2.c】#include #include / 库函数 strlen 需要#include /库函数 isdigit 、strcpy 需要,书 P386 int Judgerchar a/ 判定字符串 a 是否是回文字符串的通用函数int n=
14、0,i,j ;n=strlena ;fori=0,j=n-1 ;ij ;i+,j- ifai.=ajreturn 0;return 1 ;int palindromechar *str, char *rint i=strlenstr-1,j=0,m=0;欢迎下载精品学习资源whilestri.=-1/运算字符串 str 中数字字符的数字量值之和ifisdigitstrim+=stri-48 ;i- ;ifm%3=0&Judgerstr/ 满意字符串的数字量之和是3 的倍数和回文字符串时返回1,并将 yes存入数组元素 strcpyr,yes ;j+ ; return 1;else /不满意字符
15、串的数字量之和是3 的倍数和回文字符串时返回0,并将 no 存入数组元素 strcpyr,no ; j+ ; return 0 ;void mainFILE *fp ;int i ;char a210=33abbba66,12abcba21,r210;iffp=fopent:myf2.out,w=NULLprintfnCant open the file.; exit 0 ; fori=0 ;i2 ;i+ifpalindromeai,ri printfn%sn%s,ai,ri,fprintffp,n%sn%s,ai,ri;else printfn%sn%s,ai,ri,fprintffp,n%
16、sn%s,ai,ri;printfnMy number is:120992340n;fprintffp,nMy number is:1292340n;fclosefp ; /* 操作终止,关闭文件fp */蓝色的内容需记忆,并且 printf函数与 fprintf函数写在一起,用逗号分欢迎下载精品学习资源一、 改错题(16 分)【程序功能】子串查找并替换;隔,这样程序不简洁江苏省高等学校非运算机专业同学 C04运算机基础学问和应用才能等级考试上机试卷二级C 语言试卷代号 C04(本试卷完成时间70 分钟)欢迎下载精品学习资源函数 substition 的功能是在 s 指向的字符串(简称 s 串
17、)中查找 t 指向的子串(简称 t串),并用 g 指向的字符串(简称 g 串)替换 s串中全部的 t 串;【测试数据与运行结果】测试数据: s: aaacdaaaaaaaefaaaghaa t: aaag: 22屏幕输出: 22cd2222aef22ghaa【含有错误的源程序】以下源程序已储存在T 盘 myf1.c 文件内,考生可直接打开该文件测试程序;欢迎下载精品学习资源#include #include #include void substitutionchar*,char*,char*;int main char s80= aaacdaaaaaaaefaaaghaa,t2=aaa,g=
18、22 ;putss;substitutions,t,g ;putss;getch;void substitutionchar *,char *,char *; int i,j,k ;char temp80 ;fori=0 ;si=0 ; i+forj=i,k=0 ;sj=tk&tk.=0;j+,k+ ;iftk=0 temp=s+j ;strcpys+i,g ;strcats,temp;i+=strleng-1 ;【要求】1. 打开 T 盘中 myfl.c 文件或将上述程序录入到myf1.c 文件中,依据题目要求及程序中语句之间的规律关系对程序中的错误进行修改;2. 改错时,可以修改语句中的一
19、部分内容,调整语句次序,增加少量的变量说明或编译预处理命令,但不能增加其它语句,也不能删去整条语句;3. 改正后的源程序(文件名myfl.c )储存在 T 盘的根目录中供阅卷使用,否就不予评分;二、 编程题(24 分)【程序功能】在一组数值不全全的整数中查找次大数;【编程要求】1、编写函数 int findsecmaxint data, int count;函数功能:在 data 数组的前 count 个整数中查找次大数;2、编写函数 main ;函数功能:声明一个整型数组a 并用测试数据初始化,用数组a 及数组元素个数作实参调用findsecmax 函数找出次大数,然后将原数组及次大数输出到
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022 江苏省 高校 计算机等级考试 二级 语言 上机 答题 要点
限制150内