《全国计算机等级考试二级C语言上机套题汇编.docx》由会员分享,可在线阅读,更多相关《全国计算机等级考试二级C语言上机套题汇编.docx(212页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、全国计算机等级考试二级C语言上机套题汇编作者:张旭仟目录目录2第01套:101)将变量各位上为偶数的数去除,剩余的数按原顺序组成新数102)用递归法计算n!103) 将一个数字字符串转换为一个整数11第02套:121)将给定字符串、整数、浮点数写到文本文件中122)依次取出字符串中所有数字字符,形成新的字符串123)将M行N列的二维数组中的字符,按列的顺序依次放到一个字符串中131)重看文件中指定的(结构体类型的)学生的数据二二二二二二二二二.二二二二二二二二二二142)创建带头结点的单向链表,并为各结点数据域赋值153) 统计一行字符串中单词的个数,作为函数值返回16第04套:171)从指定
2、文件中读入学生数据(结构体),并按学号从小到大排序172) 在字符串的最前端加入n个*号,形成新串183)统计各年龄段的人数19第05套:201)将给定字符串、整数、浮点数写到文本文件,再用字符串方式读入202)对N名学生的学习成绩,按从高到低的顺序找出前m名学生203)删去一维数组中所有相同的数,使之只剩一个22第06套:231) 根据形参i的值返回某个函数的值232)比较两个字符串,将长字符串的首地址作为函数值返回233) 按指定的规则移动字符串中的内容24第07套,251)输出结而体甫云正面诵息二二二二二二二二二二二二二二二二二二二二二二二二二二二二二二二1252)求出数组中最大数和次最
3、大数253)求无符号整数低n-1位的数26第08套:261) 将该学生的各科成绩都乘以一个系数a262) 求k!,所求阶乘的值作为函数值返回273) 使二维数组左下三角元素中的值乘以n27第09套:281)将不带头节点的单向链表结点数据域中的数据从小到大排序282)将指定字符串中的字母转换为其后续字母(Z转换为A, z转换为a)293) 把下标从0到p的数组元素平移到数组的最后30第10套:301) 判定NXN (N为奇数)的矩阵是否是幻方”302)根据整型形参计算公式的值313)编写函数,功能是删除字符串中的所有空格32第11套:321) 将带头结点的单向链表逆置322)计算s所指字符串中含
4、有t所指字符串的数目333)将字符串数组中M个字符串合并成一个新的字符串34第12套:351) 将不带头结点的单向链表逆置352)将字符串中位于奇数位置的字符或ASCII码为偶数的字符放入t所指数组中363)将M行N列的二维数组中的数据按列的顺序依次放到一维数组中36第13套:371)将带头节点的单向链表结点数据域中的数据从小到大排序372) 求单向链表结点数据域中的最大值383)将M行N列的二维数组中的数据按行序放到一维数组中39第14套:401) 使用函数指针调用函数402)将单向链表结点数据域为偶数的值累加起来403) 判断符串是否为回文41第15套:421)从指定文件中对指定学号的学生
5、数据进行修改422)利用插入排序法对字符串中的字符按从小到大的顺序进行排序433) 找出学生的最高分,由函数值返回43第16套:451)求字符串数组中最长字符串的长度,将其余字符串用字符*补齐452)将p所指字符串中每个单词的最后一个字母改成大写453)对字符串除首、尾字符外的字符按ASCII码降序排列46第17套:461)按学生结构体数组中姓名的字典序排序462) 找出串中ASCII码值最大的字符将其放在第一个位置上473)把指定分数范围内的学生数据放在指定的数组中48第18套:491)将指定字符串中所有字母字符顺序前移,其他字符顺序后移493) 将字符串中最后一次出现的tl替换成t2504
6、) 将指定字符串中ASCII值为奇数的字符删除50第19套511)修改形参所指的结构体变量中的数据512) 从N个字符串中找出最长的那个串523)将a、b中的两个两位正整数合并形成一个新的整数放在c中52第20套:531)计算数组中N个数的平均值,并将小于平均值的数据移至数组的前部532) 统计字符串中各元音字母(即:A, E、I、0, U)的个数533) 是求出二维数组周边元素之和54第21套:551)计算数组中N个数的平均值,将数组中大于平均值的数据移至数组的前部552)将英文文本中”个单词的第一个字母改成大写563) 求出数组周边元素的平均值56第22套:571)将自然数110以及它们的
7、平方根写到文本文件中,再读到屏幕上572)将n个无序整数从小到大排序583)将两个两位的正整数合并成一个整数58第23套:591) 找出NXN矩阵中每列元素中的最大值592)利用指针变量交换主函数中两个变量的值593)求小于或等于lim的所有素数60第24套:601) 修改结构体变量中的学生记录602) 删除数列中值为x的元素613)把分数最低的学生数据放在b所指的结构体数组中62第25套:631)从结构体数组中找出指定编号人员的数据,作为函数值返回632)从s所指字符串中,找出与t所指字符串相同的子串的个数643) 将字符串中ASCII值为偶数的字符删除65第26套:651)删除链表中数据域
8、值相同的结点,使之只保留一个652)用选择法对数组中的n个元素按从小到大的顺序进行排序663) 求出1到m之间能被7或11整除的所有整数67第27套:671) 计算下式前n项的和作为函数值返回672) 统计substr所指子字符串在str所指字符串中出现的次数683) 工大n 白勺68第28套:691) 统计形参字符串中数字字符出现的次数692) 通过某种方式实现两个变量值的交换703)求1到1000之间能被7或11整除、但不能同时被7和11整除的所有整数70第29套:701)修改结构体变量中的数据,并在主函数中输出修改后的数据702) 应用递归算法求形参a的平方根713)从s所指的结构体数组
9、中找出高于等于平均分的学生数据放在b所指的数组中72第30套:731)将形参a所指结构体变量中的数据赋给函数中的结构体变量b,并修改学号和姓名732) 从s所指字符串中删除所有小写字母c743)将字符串中的前导*号全部移到字符串的尾部74第31套:751)对下标为奇数的字符按ASCII码递增排序,并将排序后的字符取出752) 利用给出的公式求”的近似值763)编制函数删除一个字符串中指定下标的字符76第32套:771)将字符串数组中所有串长超过k的字符串右边的字符删除772)根据公式求“值773) 删除字符串中多于n的前导*号78第33套:791)将指定源文件中的内容复制到指定的目标文件中79
10、2)将长整型数中每一位上为偶数的数依次取出,构成一个新数放在t中793)将两个两位数的正整数a、b合并形成一个整数放在c中80第34套:801) 用筛选法找出2n之间的所有素数802)为一个偶数寻找两个素数,这两个素数之和等于该偶数813)计算并输出n(包括n)以内能被5或9整除的所有自然数的倒数之和82第35套:821)建立NXN的矩阵,要求矩阵最外层元素全为1;第2层为2,第3层为3,822)将十进制正整数转换成k(2WkW9)进制数,并从高位到低位输出833)从num个字符串中找出最长的一个字符串传回83第36套:841)统计带有头结点的单向链表结点的个数842)求s所指字符串中最后一次
11、出现t所指子字符串的地址853)将指定字符串中除下标和ASCII值都为偶数的字符外,全都删除86第37套:861)在形参指定字符串数组中,查找含有指定子串的所有字符串并输出862)求三个数的最小公倍数873)删除字符串前导和尾部的*号,串中字母之间的*号都不删除87第38套:881)删除数组中的偶数,奇数仍按原顺序存放在原数组中882)求出两个非零正整数的最大公约数,并作为函数值返回893) 删除字符串中所有的*号89第39套:901)在形参ss所指字符串数组中,删除所有串长超过k的字符串902)比较字符串p、q,把ASCII值大或相等的字符依次存放到c所指数组中903) 除前导*号之外,将字
12、符串中其它*号全部删除91第40套:921) 把膨参x的值放入一个新结点并插入到链表中922) 计算正整数num各位数字之积933) 计算数组中n门课程的平均分93第41套:941)计算x所指数组中N个数的平均值942) 根据整型形参n,计算公式的值943) 使数组右上三角元素中的值乘以m95第42套:961)将s所指字符串中的所有数字字符移到所有非数字字符之后962) 用冒泡法对字符串由小到大进行排序963) 求ss所指字符串中指定字符的个数97第43套:971)在形参ss所指字符串数组中查找与形参t所指字符串相同的串972)选出从1到55之间能被3整除、且有一位数是5的数983)将字符串尾
13、部的*号全部删除,前面和中间的*号不删除98第44套:991)将形参字符串中的数字字符0转换成9,1转换成8, 2转换成7,,9转换成0.992)将p所指字符串中的所有字符复制到b,每复制三个字符之后插入一个空格1003)求出链表中N名学生成绩的平均分100第 45 套:1011)把数组中的偶数按原顺序存放,奇数删除1012) 按递归公式求函数值1023) 使字符串中尾部的*号不得多于n个102第 46 套:1031)利用指针数组字符串数组中的字符串按由长到短的顺序排序1032)计算并输出数列前n项的平方根之和104第 47 套:1051) 找出字符串中出现频率最高的字母(不区分大小写)105
14、2) 根据公式求S的值1063) 计算并输出级数和106第 48 套:1071)将字符串中的数字字符转换成对应数值,并计算它们的累加和1072)计算小于形参k的最大的10个能被13或17整除的自然数之和1073)求小于形参n同时能被3与7整除的所有自然数之和的平方根107第 49 套:1081) 将字符串中所有ASCII码值小于97的字符存入t中形成一个新串1082)输出n个实数的平均值,并统计在平均值以上的实数个数1093)根据以下公式求P的值109第 50 套:1101) d对NXN矩阵,以主对角线为对称线,对称元素相加并将结果存放在左下三角元素中,右上三角元素置为01102) 计算函数
15、F(x, y, z) = (x+y)/(x-y) + (z+y)/(z-y)的值1103)将字符串中的前导*号全部删除,中间和尾部的*号不删除111第 51 套:1111)计算出字符串中包含的单词个数1112)从n个学生的成绩中统计出低于平均分的学生人数1123)求出数组的最大元素在数组中的下标113第 52 套:1131)将NXN矩阵中元素的值按列右移1个位置,右边被移出矩阵的元素绕回左边1132)计算并输出级数的前N项之和1143) 求Fibonacci数列中大于t的最小的一个数114第 53 套:1151) 根据公式计算1152) 求整数x的y次方的低3位值116第 54 套:1161)
16、计算单向链表中各结点数据域中值之和1162)将s所指字符串中出现的与tl所指字符串相同的子串全部替换成t2所指字符串1173)将s所指字符串中下标为偶数的字符删除118第 55 套:1181)判断形参s所指字符串是否是回文”1182) 求出分数序列的前n项之和1193)将大于形参m且紧靠m的k个素数存入xx所指的数组中119第 56 套:1201)从键盘输入若干行文本,写到指定文件中,输入T结束1202)从低位开始取出长整型变量s中奇数位上的数,依次构成一个新数1213)将两个两位数的正整数a、b合并形成一个整数放在c中121第 57 套:1221)把数组a中的数按最小、最大、次小、次大的顺序
17、放在a0、al, a2、a3中1222)用递归算法计算斐波拉契数列中第n项的值1233) 求学生的平均分放在记录的ave成员中123第 58 套:1241)把s字符串中最右边的n个字符复制到字符数组中t,形成一个新串1242) 找出一个大于形参m旦紧随m的素数1243)求出能整除x且不是偶数的整数,并按从小到大的顺序放在数组pp中125第 59 套:1251)在3X4的矩阵中找出在行上最大、在列上最小的那个元素1252)根据整型形参,计算公式的值1263)将低于平均分的人数作为函数值返回,将低于平均分的分数放在数组below中127第 60 套:1271)将结构体数组中的三个元素按num成员进
18、行升序排列1272)将m个字符串连接起来,组成一个新串,放入pt所指存储区中1283) 使数组左下三角元素中的值全部置成0128第 61 套:1291)将字符串中的大写字母转换成小写字母,小写字母转换成大写字母1292)给一维数组a输入任意4个整数,并按一定规律输出1303)计算并输出给定整数n的所有因子(不包括1与n自身)之和130第 62 套:1311) 把字符串中下标为奇数的字符右移到下一个奇数位置1312) 根据参数求表达式的值1313)统计在字符串中a到z 26个小写字母各自出现的次数132第 63 套:1331)有NXN矩阵,根据给定的m (m2)的素数的个数1812) 计算数列前
19、n(4n50)项的累加和1823)计算并输出下列多项式的值182第 91 套:1831)计算表达式的值1832)计算n的5次方的值(规定n的值大于2、小于8)1843)计算并输出给定数组(长度为9)中每相邻两个元素之平均值的平方根之和184第 92 套:1851)计算表达式的前n项1852)找出100至n (不大于1000)之间三位数字相等的所有整数,放在数组s中1853)根据公式计算并输出给定10个数的方差186第 93 套:1861)使程序输出链表尾部结点中的数据,并释放该结点,使链表缩短1862)将字符串中的字符按逆序输出,但不改变字符串中的内容1883)比较两个字符串的长度(不得调用C
20、语言提供的求字符串长度的函数)188第 94 套:1891) *计算数歹ij的前 n 项之和1892) 从3个红球,5个白球,6个黑球中任意取出8个作为一组,进行输出1893) 计算并输出下列多项式的值190第 95 套:1901)计算NXN矩阵的主对角线元素和反向对角线元素之和,并作为函数值返回1904) 根据参数求表达式的值1913)除了字符串前导和尾部的*号之外,将串中其它*号全部删除191第 96 套:1921) 有NXN矩阵,将矩阵的外围元素顺时针旋转1922) 计算 S=f (-n)+f (-n+1) + +f (0)+f(l)+f (2)+-+f (n)的值1933) 计算表达式
21、的值194第 97 套:1941) 逆置数组元素中的值1942)将一个由八进制数字字符组成的字符串转换为与其面值相等的十进制整数1953)函数返回指定学号的学生数据,指定的学号在主函数中输入195第 98 套:1961)在带有头结点的单向链表中,查找数据域中值为ch的结点1962)删除p所指字符串中的所有空白字符(包括制表符、回车符及换行符)1973)将字符串中所有下标为奇数位置上的字母转换为大写(不是字母则不转换)198第 99 套:1991)将数组中的前半部分元素中的值和后半部分元素中的值对换1992)把主函数中输入的3个数,最大的放在a中,最小的放在c中,中间的放在b中1993)把分数最
22、高的学生数据放在b所指的数组中(分数最高的学生可能不止一个)200第 100 套:2011)在字符串中寻找与参数c相同的字符,并在其后插入一个与之相同的字符2012)计算数组元素中值为正数的平均值(不包括0)2013)根据以下公式计算s,计算结果作为函数值返回202第01套:1)将变量各位上为偶数的数去除,剩余的数按原顺序组成新数给定程序中,函数fun的功能是:将形参n所指变量中,各位上为偶数的数去除,剩余的数按原来从高位 到低位的顺序组成一个新的数,并通过形参指针n传回所指变量。例如,输入一个数:27638496,新的数: 为739请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正
23、确的结果。注意:源程序存 放在考生文件夹下的BLANK1.C中。不得增行或删行,也不得更改程序的结构!给定源程序:ttinclude void fun(unsigned long *n) unsigned long x=0, i; int t;i=l;while(*n)/*found*/ t=*n % _1_;/*found*/ if(t%2!= _2_) x=x+t*i; i=i*10; *n =*n /10;)/*found*/*n=_3;) main() unsigned long n=T;while(n99999999|n0) printf(*Please input (0n10000
24、0000):*); scanf (线Id, &n);fun (&n);printf(nThe result is: %ldn*, n);解题思路:第一处:t是通过取模的方式来得到*n的个位数字,所以应填:10。第二处:判断是否是奇数,所以应填:0o第三处:最后通形参n来返回新数x,所以应填:X。2)用递归法计算n!给定程序MODI 1.C中函数fun的功能是:计算n!。例如,给n输入5,则输出120. 000000。请改正程序 中的错误,使程序能输出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的 结构!给定源程序:#include double fun ( int n
25、 ) double result =1.0;/*found*/ if n=0return 1. 0;while(nl&n170)/*f cnind*/return result ;)main () int n ;printf(*Input N:*);scanf &n);printfCnn%d! =%lfnn, n, fun(n)result*=n一解题思路:第一处:条件语句书写格式错误,应改为:if (n=0) o 第二处:语句result *= n后缺少分号。3)将一个数字字符串转换为一个整数请编写一个函数fun,它的功能是:将一个数字字符串转换为一个整数(不得调用C语言提供的将字符串转 换
26、为整数的函数)。例如,若输入字符串T234”,则函数把它转换为整数值-1234函数fun中给出的语 句仅供参考。注意:部分源程序存在文件PR0G1.C文件中。请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。给定源程序:ttinclude n=fun(s);ttinclude printf(%ldn,n);long fun ( char *p)NONO();/*以下代码仅供参考*/)int i, len, t;NONO()/*len为串长,t为正负标识*/(/*本函数用于打开文件,输入数据,调用函long x=0;数,输出数据,关闭文件。*/len=s
27、trlen(p);FILE *fp, *wf ;if (p0=-)int i ;t=-l;len-;p+;char s20;else t=l;longn;/*以下完成数字字符串转换为一个数字*/fp=fopen(c:testin. dat, r);wf=fopen(*c:testout. dat, w);for(i=0;i-) t=-l;len; p+; else t=l; /*以下完成数字字符串转换为一个数字*/ while (*p)x=x*10-48+*(p+);returnx*t;)注意:由于NONO()这个函数是改卷人用的,与考生没有什么关系。为减少不必要的篇幅,从下面第2套 试题始一
28、律省略N0N0()函数。第02套:1)将给定字符串、整数、浮点数写到文本文件中给定程序中,函数fun的功能是将形参给定的字符串、整数、浮点数写到文本文件中,再用字符方式从此 文本文件中逐个读入并显示在终端屏幕上。请在程序的下划线处填入正确的内容并把下划线删除,使程序 得出正确的结果。注意:源程序存放在考生文件夹下的BLANK1.C中。不得增行或删行,也不得更改程序的结构!给定源程序:#includevoidfun(char *s, int a, double f) /*found*/char ch;fp=fopen(*filel. txt, w); fprintf (fp, *%s%d%fn*
29、, s, a, f); fclose(fp);fp=fopen(filel. txt, r); printf(*nThe result:nn*); ch=fgetc(fp);/*found*/ while (!feof(_2_)/*found*/putchar(_3_);ch=fgetc(fp);putchar (* n );fclose(fp);main () char a10=*Hello!*;int b=12345;double c=98. 76; fun (a, b, c);)解题思路:本题是考察先把给定的数据写入到文本文件中,再从该文件读出并显示在屏幕上。第一处:定义文本文件类型变量
30、,所以应填:FILE *。第二处:判断文件是否结束,所以应填:fp。第三处:显示读出的字符,所以应填:ch。2)依次取出字符串中所有数字字符,形成新的字符串给定程序M0DI1.C中函数fun的功能是:依次取出字符串中所有数字字符,形成新的字符串,并取代原字 符串。请改正函数fun中指定部位的错误,使它能得出正确的结果。注意:不要改动main函数,不得增 行或删行,也不得更改程序的结构!给定源程序: ttinclude void fun(char *s) int i,j;for(i=0, j=0;si!= 0* ;i+) if(si= 0 &si= 9) /*found*/ sj=si;/* f
31、ound*/main() char item80;printf(*nEnter a string :);gets(item);printf(*nnThe string is : %sn”, item);fun(item);printf(*nnThe string of changing is : %sn”, item );解题思路:第一处:要求是取出原字符串中所有数字字符组成一个新的字符串,程序中是使用变量j 来控制新字符串的位置,所以应改为:sj+=si;。第二处:置新字符串的结束符,所以应改为:sj=O;3)将M行N列的二维数组中的字符,按列的顺序依次放到一个字符串中请编写函数fun,函数
32、的功能是:将M行N列的二维数组中的字符数据,按列的顺序依次放到一个字符串 中。例如,二维数组中的数据为:则字符串中的内容应是:WSHWSHWSHo注意:部分源程序在文件PR0G1.C中。请勿改动主函数main和其它 函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。给定源程序:#include define M 3#define N 4void fun(char sN, char *b) int i,j,n=0;/*请填写相应语句完成其功能*/ for(i=0;iN;i+)bn八O;main () char a100, wMN = int i, j;printf(The matr
33、ix:Xn);for (i=0;iM;i+) for(j=0;jN;j+) printf(%3c, wij); printf(n);fun (w, a);printf(The A string:n*); puts (a);printf (nn);/NONO();解题思路:本题是把二维数组中的字符数据按列存放到一个字符串中。1 .计算存放到维数组中的位置。2 .取出二维数组中的字符存放到一维数组(已计算出的位置)中。参考答案:void fun(char sN, char *b) int i,j, n=0;/*请填写相应语句完成其功能*/for(i=0; i N;i+)(for(j = 0 ; j M ; j+) bn+ = sji;)bn=