《二级C语言上机(南开100题).docx》由会员分享,可在线阅读,更多相关《二级C语言上机(南开100题).docx(210页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、全国计算机等级考试二级C语言上机套题汇编作者:张旭仟目录第01套:101)将变量各位上为偶数的数去除,剩余的数按原顺序组成新数102) 用递归法计算n!103) 将一个数字字符串转换为一个整数11第02套:121)将给定字符串、整数、浮点数写到文本文件中122)依次取出字符串中所有数字字符,形成新的字符串123)将M行N列的二维数组中的字符,按列的顺序依次放到一个字符串中13第03套:141)模拟软件第100题,BLANK1.C:重写二进制文件中指定结构体类型的数据142)模拟软件第100题,M0DI1.C:创建带头结点的单向链表,并为各结点数据域赋值153) 模拟软件第100题,PR0G1.
2、C:统计字符串中单词的个数16第04套:171)从指定文件中读入学生数据(结构体),并按学号从小到大排序172) 在字符串的最前端加入n个*号,形成新串183)统计各年龄段的人数19第05套:201)将给定字符串、整数、浮点数写到文本文件,再用字符串方式读入202)对N名学生的学习成绩,按从高到低的顺序找出前m名学生203) 删去一维数组中所有相同的数,使之只剩一个22第06套:231)根据形参i的值返回某个函数的值232)比较两个字符串,将长字符串的首地址作为函数值返回233) 按指定的规则移动字符串中的内容24第07套.251)输后结构体市学不正看息二二二二二二二二二二二二二二二二二二二二
3、二二二二二二二二二二二二 252)求出数组中最大数和次最大数253)求无符号整数低n-1位的数26第08套:261)将该学生的各科成绩都乘以一个系数a262) 求k!,所求阶乘的值作为函数值返回273) 使二维数组左下三角元素中的值乘以n27第09套:281)将不带头节点的单向链表结点数据域中的数据从小到大排序282)将指定字符串中的字母转换为其后续字母(Z转换为A, z转换为a)293) 把下标从0到p的数组元素平移到数组的最后307 !/ 7rrp !/ z 71Y1J!/ !/12 3 3 12 3 自 1 2判定NXN (N为奇数)的矩阵是否是“幻方”30根据整型形参计算公式的值31编
4、写函数,功能是删除字符串中的所有空格3211 套:32将带头结点的单向链表逆置32计算s所指字符串中含有t所指字符串的数目33将字符串数组中M个字符串合并成一个新的字符串3412 套:35将不带头结点的单向链表逆置35将字符串中位于奇数位置的字符或ASCII码为偶数的字符放入t所指数组中36将M行N列的二维数组中的数据按列的顺序依次放到一维数组中361)将带头节点的单向链表结点数据域中的数据从小到大排序372)求单向链表结点数据域中的最大值383)将M行N列的二维数组中的数据按行序放到一维数组中39第14套:401) 使用函数指针调用函数402) 将单向链表结点数据域为偶数的值累加起来403)
5、 判断字符串是否为回文41第15套:421)模拟软件第5套,BLANK1.C:修改指定文件中结构体类型数据422)模拟软件第5套,M0DI1.C:利用插入排序法对字符串排序433)模拟软件第5套,PR0G1.C:找出学生的最高分,由函数值返回43第16套:451)求字符串数组中最长字符串的长度,将其余字符串用字符*补齐452)将p所指字符串中每个单词的最后一个字母改成大写453) 对字符串除首、尾字符外的字符按ASCH码降序排列46第17套:461)模拟软件第10套,BLANK1.C:按学生结构体数组中姓名的字典序排序462)模拟软件第10套,M0DI1.C:找出串中ASCII码值最大的字符将
6、其放在第一个位置上473)模拟软件第10套,PR0G1.C:把指定分数范围内的学生数据放在指定的数组中48第18套:491)模拟软件第6套,BLANK1.C:将字符串中字母字符前移,其他字符后移492)模拟软件第6套,M0DI1.C:将字符串中最后一次出现的子串tl替换成t2503)模拟软件第6套,PR0G1.C:将字符串中ASCII值为奇数的字符删除50第19套:511)模拟软件第11套,BLANK1. C:修改形参所指的结构体变量中的数据512) 模拟软件第11套,M0DI1.C:从N个字符串中找出最长的那个串523) 模拟软件第11套,PR0G1.C:将a、b两数合并成一个新数52第20
7、套:531)计算数组中N个数的平均值,并将小于平均值的数据移至数组的前部532) 统,字符号中各,声艺即:A、E, I、0、U)的个数53第21套.551)计算数组中N个数的平均值,将数组中大于平均值的数据移至数组的前部552)将英文文本中”个单词的第一个字母改成大写563) 求出数组周边兀素的平均值56第22套:571)将自然数110以及它们的平方根写到文本文件中,再读到屏幕上572)将n个无序整数从小到大排序583)将两个两位的正整数合并成一个整数58第23套:591)找出NXN矩阵中每列元素中的最大值592)利用指针变量交换主函数中两个变量的值593)求小于或等于lim的所有素数60第2
8、4套:601)模拟软件第8套,BLANK1. C:修改结构体变量中的学生记录602) 模拟软件第8套,M0DI1.C:删除数列中值为x的元素613)模拟软件第8套,PR0GLC:把分数最低的学生数据放在b所指的结构体数组中62第25套:631)从结构体数组中找出指定编号人员的数据,作为函数值返回632)从s所指字符串中,找出与t所指字符串相同的子串的个数643) 将字符串中ASCII值为偶数的字符删除64第26套:651)模拟软件第3套,BLANK1. C:删除链表中数据域相同的结点652)模拟软件第3套,M0DI1.C:用选择法对数组排序663)模拟软件第3套,PR0G1.C:求1到m之间能
9、被7或11整除的所有整数67第27套:671) 计算下式前n项的和作为函数值返回672) 统计substr所指子字符串在str所指字符串中出现的次数683)根据公式求”的值68第28套:691)模拟软件第7套,BLANK1.C:统计字符串中数字字符出现的次数692)模拟软件第7套,M0DI1.C:通过某种方式实现两个变量值的交换693)模拟软件第7套,PR0G1.C:求1到1000之间能被7或11整除、但不能同时被7和11整除的所有整数702)3)模拟软件按笫13套,BLANK 1.C:修改结构体变量中的数据,并在主函数中输出修改后的数据70模拟软件按第13套,M0DI1.C:应用递归算法求形
10、参a的平方根71从s所指的结构体数组中找出高于等于平均分的学生数据放在b所指的数组中71模拟软件第16套,BLANK1.C:修改结构体变量成员的值72模拟软件第16套,M0DI1.C:从s所指字符串中删除所有小写字母c73模拟软件第16套,PR0G1.C:将字符串中的前导*号全部移到字符串的尾部7431 套:74对下标为奇数的字符按ASCII码递增排序,并将排序后的字符取出74利用给出的公式求 ” 的近似值75编制函数删除一个字符串中指定下标的字符7532 套:76模拟软件第20套,BLANK1. C:删除字符串数组中所有串长超过k的字符串右边的字符76模拟软件第20套,MODI1.C:根据公
11、式求人值77模拟软件第20套,PROG1.C:删除字符串中多于n的前导*号77将指定源文件中的内容笈制到指定的目标文件中.;二二;.二二二.二.:二.二二.:78将长整型数中每一位上为偶数的数依次取出,构成一个新数放在t中79将两个两位数的正整数a、b合并形成一个整数放在c中79用筛选法找出2n之间的所有素数二二二二二二二二二二二二二二二二二二二二二二二二二二二80为一个偶数寻找两个素数,这两个素数之和等于该偶数81计算并输出n(包括n)以内能被5或9整除的所有自然数的倒数之和81建立NXN的矩阵,要求矩阵最外层元素全为1;第2层为2,第3层为3,82将十进制正整数转换成k(2k&9)进制数,
12、并从高位到低位输出82从num个字符串中找出最长的一个字符串传回8336 套:84统计带有头结点的单向链表结点的个数84求s所指字符串中最后一次出现t所指子字符串的地址84将指定字符串中除下标和ASCII值都为偶数的字符外,全都删除8537 套:86在形参指定字符串数组中,查找含有指定子串的所有字符串并输出86求三个数的最小公倍数86删除字符串前导和尾部的*号,串中字母之间的*号都不删除8738 套:88删除数组中的偶数,奇数仍按原顺序存放在原数组中88求出两个非零正整数的最大公约数,并作为函数值返回88删除字符串中所有的*号891)在形参ss所指字符串数组中,删除所有串长超过k的字符串892
13、)比较字符串p、q,把ASCII值大或相等的字符依次存放到c所指数组中903)除前导*号之外,将字符串中其它*号全部删除907 !/ !/ !/ !/ 7 T J 7 !/ lz vij !/ JZ 7 !/ 7 勺rv!/ !/ / 牛/ 7 7 7 勺rj)z JZ !/ Wr7JZ- 7 !/ 勺/ / 12 3 句 12 3 3 12 3 3 12 3 3 12 3 12 3 5- 12 3 12 3 第 12 3 劣 1模拟软件第14套,BLANK1.C:在单向链表中插入新结点模拟软件第14套,M0DI1.C:计算正整数num各位数字之积模拟软件第14套,PR0G1.C:计算数组中n
14、门课程的平均分41 套:计算x所指数组中N个数的平均值根据整型形参n,计算公式的值使数组右上三角元素中的值乘以m42 套:将s所指字符串中的所有数字字符移到所有非数字字符之后用冒泡法对字符串由小到大进行排序求SS所指字符串中指定字符的个数43 套:模拟软件第17套,BLANK1.C:在字符串数组ss中查找字符串t模拟软件第17套,M0DI1.C:选出从1到55之间能被3整除、且有一位是5的数模拟软件第17套,PR0G1.C:将字符串尾部的*号全部删除44 套:将形参字符串中的数字字符0转换成9,1转换成8, 2转换成7,,9转换 将P所指字符串中的所有字符复制到b,每复制三个字符之后插入一个空
15、格求出链表中N名学生成绩的平均分把数组中的偶数按原顺序存放,奇数删除按递归公式求函数值使字符串中尾部的*号不得多于n个46 套:利用指针数组字符串数组中的字符串按由长到短的顺序排序计算并输出数列前n项的平方根之和计算级数的和47 套:模拟软件第15套,BLANK1.C:找出字符串中出现频率最高的字母模拟软件第15套,M0DI1.C:根据公式求级数之积模拟软件第15套,PROG1.C:根据公式计算级数之和48 套:模拟软件第21套,BLANK1. C:求字符串中的数字字符转换成对应数值的累加和模拟软件第21套,MODI1.C:计算小于k的最大的10个能被13或17整除的自然数之和.模拟软件第21
16、套,PROG1.C:求小于n同时能被3与7整除的所有自然数之和的平方根.49 套:模拟软件第9套,BLANK1. C:将字符串中ASCII码值小于97的字符存入新串模拟软件第9套,MODI1.C:输出n个实数的平均值,并统计平均值以上实数的个数模拟软件第9套,PROG1.C:根据以下公式求P的值50d对NXN矩阵,以主对角线为对称线,对称元素相加并将结果存放在左下三角元素中, 0计算函数 F(x, y, z) = (x+y)/(x-y) + (z+y)/(z-y)的值将字符串中的前导*号全部删除,中间和尾部的*号不删除51套.计算出字符串中包含的单词个数从n个学生的成绩中统计出低于平均分的学生
17、人数求出数组的最大元素在数组中的下标52 套:模拟软件第2套,BLANK1.C:将矩阵元素按列右移模拟软件第2套,M0DI1.C:计算并输出级数的前N项之和91 91 92 93 93 93 94 94 95 95 96 96 97 97 97 98 98 0.98 99100 .101 .101 .101 102 .102 .102 .103 .104 .104 104 105 105 106 106 .106 .107 107 .107 .108 108 .109109 .110 110 .111.111.111.112 .113 .113 113114 .114模拟软件第2套,PROG1
18、.C:求Fibonacci数列中大于t的最小的一个数1)根据公式计算2)求整数x的y次方的低3位值第54套.1)计算单向链表中各结点数据域中值之和2)将s所指字符串中出现的与tl所指字符串相同的子串全部替换成t2所指字符串.3)将s所指字符串中下标为偶数的字符删除第55套.1)判断形参s所指字符串是否是回文”2)求出分数序列的前n项之和3)将大于形参m且紧靠m的k个素数存入xx所指的数组中第56套:1)从键盘输入若干行文本,写到指定文件中,输入T结束2)从低位开始取出长整型变量s中奇数位上的数,依次构成一个新数3)将两个两位数的正整数a、b合并形成一个整数放在c中第57套:1)把数组a中的数按
19、最小、最大、次小、次大的顺序放在a0、al、a2、a3中2)用递归算法计算斐波拉契数列中第n项的值3)求学生的平均分放在记录的ave成员中第58套:1)把s字符串中最右边的n个字符复制到字符数组中t,形成一个新串2) 找出一个大于形参m且紧随m的素数3)求出能整除x且不是偶数的整数,并按从小到大的顺序放在数组pp中第59套:1)在3X4的矩阵中找出在行上最大、在列上最小的那个元素2)根据整型形参,计算公式的值3)将低于平均分的人数作为函数值返回,将低于平均分的分数放在数组below中.!/ )za-F !/ )/ !/ !/ 6F 7 )z XI/ !/ !/2 3 12 3 食 1 2 3
20、12 3 食 1 2将结构体数组中的三个元素按num成员进行升序排列将m (IWmWIO)个字符串连接起来,组成一个新串,放入pt所指存储区中使数组左下三角元素中的值全部置成0将字符串中的大写字母转换成小写字母,小写字母转换成大套?母二.二二二二给一维数组a输入任意4个整数,并按一定规律输出计算并输出给定整数n的所有因子(不包括1与n自身)之和把字符串中下标为奇数的字符右移到下一个奇数位置根据参数求表达式的值统计在字符串中a到z 26个小写字母各自出现的次数63 套:有NXN矩阵,根据给定的m (m2)的素数的个数181计算数列前n(4n50)项的累加和181计算并输出下列多项式的值18291
21、 套:182il-VZ IS2计算n的5次方的值(规定n的值大于2、小于8)183计算并输出给定数组(长度为9)中每相邻两个元素之平均值的平方根之和18392 套:184计算表达式的前n项184找出100至n (不大于1000)之间三位数字相等的所有整数,放在数组s中185根据公式计算并输出给定10个数的方差18593 套:186模拟软件第19套,BLANK1. C:删除链表尾部的结点,使链表缩短186模拟软件第19套,MODI1.C:将字符串逆序输出,不改变字符串内容1873)模拟软件第19套,PR0G1.C:比较两个字符串的长度(不得调用C函数)187第 94 套:1881) *计算数列的
22、前n项之和1882)从3个红球,5个白球,6个黑球中任意取出8个作为一组,进行输出1883)计算并输出下列多项式的值1891)计算NXN矩阵的主对角线元素和反向对角线元素之和,并作为函数值返回1902) 根据参数求表达式的值1903)除了字符串前导和尾部的*号之外,将串中其它*号全部删除191第 96 套:1921) 有NXN矩阵,将矩阵的外围元素顺时针旋转1922) 计算 S=f (-n) +f (-n+1) + +f (0)+f (l)+f (2) + +f (n)的值1923)计算表达式的值193第 97 套:1931) 逆置数组元素中的值1932)将一个由八进制数字字符组成的字符串转换
23、为与其面值相等的十进制整数1943)函数返回指定学号的学生数据,指定的学号在主函数中输入195第 98 套:1961)在带有头结点的单向链表中,查找数据域中值为ch的结点1962)删除p所指字符串中的所有空白字符(包括制表符、回车符及换行符)1973)将字符串中所有下标为奇数位置上的字母转换为大写(不是字母则不转换)197第 99 套:1981)将数组中的前半部分元素中的值和后半部分元素中的值对换1982)把主函数中输入的3个数,最大的放在a中,最小的放在c中,中间的放在b中1983)把分数最高的学生数据放在b所指的数组中(分数最高的学生可能不止一个)1991)在字*串中寻找与参数c相同的字符
24、,并在其后插入二个与之相同的字符二二二二二二二二二二:2002)计算数组元素中值为正数的平均值(不包括0)2003)根据以下公式计算s,计算结果作为函数值返回201第01套:1)将变量各位上为偶数的数去除,剩余的数按原顺序组成新数给定程序中,函数fun的功能是:将形参n所指变量中,各位上为偶数的数去除,剩余的数按原来从高位 到低位的顺序组成一个新的数,并通过形参指针n传回所指变量。例如,输入一个数:27638496,新的数: 为739o请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注意:源程序存 放在考生文件夹下的BLANK1.C中。不得增行或删行,也不得更改程序的结构
25、!给定源程序:#include void fun(unsigned long *n) unsigned long x=0, i; int t;i=l;while(*n)/*f ourid* / 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=-l;while(n99999999|n0) printf(*Please input(0nl00000000)/);scanf(*%ld*, &n);)fun(&n);printf(nThe r
26、esult is: %ldn”, n); )解题思路:第一处:t是通过取模的方式来得到*n的个位数字,所以应填:10。第二处:判断是否是奇数,所以应填:0o第三处:最后通形参n来返回新数x,所以应填:xo2)用递归法计算n!给定程序MODILC中函数fun的功能是:计算n!。例如,给n输入5,则输出120. 000000。请改正程序 中的错误,使程序能输出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的 结构!给定源程序:#include double fun ( int n ) double result = 1.0;/*found*/ if n=0return 1.
27、 0;while(nl&n170)/*found*/return result ;)main () int n ;printfClnput N:);scanf(%d, &n);printf(*nn%d! =%lfnn”, n, fun(n)result*=n-解题思路:第一处:条件语句书写格式错误,应改为:if (n=0)。 第二处:语句result *二n一后缺少分号。3)将一个数字字符串转换为一个整数请编写一个函数fun,它的功能是:将一个数字字符串转换为一个整数(不得调用C语言提供的将字符串转 换为整数的函数)。例如,若输入字符串T234”,则函数把它转换为整数值-1234o函数fun中
28、给出的语 句仅供参考。注意:部分源程序存在文件PROGLC文件中。请勿改动主函数main和其它函数中的任何内容, 源程序:#include ttinclude long fun ( char *p) /*以下代码仅供参考*/int i, len, t;/*len为串长,t为正负标识*/long x=0;len=strlen(p);if (p0=,) t=l;len-;p+; else t=l;/*以下完成数字字符串转换为一个数字*/仅在函数fun的花括号中填入你编写的若干语句。给定n=fun(s);printf(%ldn”, n);NONO();)NONO()/*本函数用于打开文件,输入数据,
29、调用函数,输出数据,关闭文件。*/FILE *fp, *wf ; int i ; char s20; longn;fp=fopen(*c:testin. dat, r); wf=fopen(*c:testout. dat, w); for(i=0;i10;i+)return x*t;)mainO/*主函数*/ char s6;long n; fscanf(fp, %s, s);n=fun(s);fprintf (wf, %ldn, n);fclose(fp);printf(Enter a string:n*); gets(s);fclose(wf);)解题思路:本题是将一个数字字符串转换为一个
30、整数。参考答案:long fun(char *p)/*以下代码仅供参考*/int i, len, t; /*len为串长,t为正负标识*/longx=0;len=strlen(p);if(pO=-)t=-l;len一;p+;else t=l;/*以下完成数字字符串转换为一个数字*/while(*p)x=x*10-48+*(p+);returnx*t;注意:由于NONO()这个函数是改卷人用的,与考生没有什么关系。为减少不必要的篇幅,从下面第2套 试题始一律省略NONO ()函数。第02套:1)将给定字符串、整数、浮点数写到文本文件中给定程序中,函数fun的功能是将形参给定的字符串、整数、浮点数
31、写到文本文件中,再用字符方式从此 文本文件中逐个读入并显示在终端屏幕上。请在程序的下划线处填入正确的内容并把下划线删除,使程序 得出正确的结果。注意:源程序存放在考生文件夹下的BLANK1.C中。不得增行或删行,也不得更改程序的结构!给定源程序:#includevoidfun (char *s, int a,double f)/*found*/_1_fp; char ch;fp=fopenCfilel. txt, w); fprintf (fp, %s%d%fn”, s, a, f); fclose(fp);fp=fopen(*filel. txt, r);printf(*nThe resul
32、t: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);)解题思路:本题是考察先把给定的数据写入到文本文件中,再从该文件读出并显示在屏幕上。第一处:定义文本文件类型变量,所以应填:FILE *o第二处:判断文件是否结束,所以应填:fPo第三处:显示读出的字符,所以应填:ch。2)依次取出字符串中所有数字字符,形成新的字符串给定程序MODI 1.C中函数fun的功能是:依次取出字符串中所有数字字符,形成新的字符串,并取代原字 符串。请改正函数fun中指定部位的错误,使它能得出正确的结果。注意:不要改动main函数,不得增 行或删行,也不得更改程序的结构!给定源程序: