全国计算机等级考试三级C语言南开100道分类提纲版附答案.docx
- 文档编号:30473771
- 上传时间:2023-08-15
- 格式:DOCX
- 页数:107
- 大小:45.30KB
全国计算机等级考试三级C语言南开100道分类提纲版附答案.docx
《全国计算机等级考试三级C语言南开100道分类提纲版附答案.docx》由会员分享,可在线阅读,更多相关《全国计算机等级考试三级C语言南开100道分类提纲版附答案.docx(107页珍藏版)》请在冰豆网上搜索。
全国计算机等级考试三级C语言南开100道分类提纲版附答案
一、素数:
13455646682
1:
将大于整数m且紧靠m的k个素数存入数组xx传回
34:
选出100以上1000之内所有个位数字与十位数字之和被10除所得余数恰是百位数字的素数
55:
求出300个四位数是素数的个数,并从小到大进行排序
64:
找出所有100以内(含100)满足I,I+4,I+10都是素数的整数I(I+10也在100以内)的个数以及这些I之和
66:
计算500-800内素数的个数,按从大到小顺序计算其间隔加、减之和
82:
求出300个四位数是素数的个数,再求出所有满足此条件的四位数平均值pjz1以及不满足此条件的四位数平均值pjz2
二、结构体操作:
71338123242314761996075
7:
按产品代码从大到小进行排列,若产品代码相同,则按金额从大到小进行排列
13:
按产品代码从小到大进行排列,若产品代码相等,则按金额从大到小进行排列
38:
按产品代码从小到大进行排列,若产品代码相同,则按金额从小到大进行排列
12:
按产品名称从小到大进行排列,若产品名称相等,则按金额从小到大进行排列
32:
按产品名称从大到小进行排列,若产品名称相等,则按金额从小到大进行排列
42:
按产品名称从大到小进行排列,若产品名称相等,则按金额从大到小进行排列
31:
按金额从大到小进行排列,若金额相同,则按产品代码从大到小进行排列
47:
按金额从大到小进行排列,若金额相等,则按产品代码从小到大进行排列
61:
按金额从小到大进行排列,若金额相同,则按产品代码从大到小进行排列
99:
按金额从小到大进行排列,若金额相等,则按产品代码从小到大进行排列
60:
有200组数据,每组有3个数,每个数均是三位数,找出条件为每组中第二个数大于第一个数加第三个数的之和,存入结构数组bb中,再对bb中的数据按照每组数据的第二个数加第三个之和的大小进行降序排列
75:
有200组数据,每组有3个数,每个数均是三位数,找出条件为每组中第一个数大于第二个数加第三个数的和,存入结构数组bb中,再对bb中的数据按照每组数据的第一个数加第三个之和的大小进行升序排列if(aa[i].x1>(aa[i].x2+aa[i].x3))bb[cnt++]=aa[i];
if(bb[i].x1+bb[i].x3>bb[j].x1+bb[j].x3){xy=bb[i];bb[i]=bb[j];bb[j]=xy;}
三、字符替换与移位:
836566298959618379710731163161007417
8:
f(p)值小于等于32或大于130,则该字符不变
36:
f(p)值小于等于32或f(p)对应的字符是数字0至9,则该字符不变
56:
f(p)值小于等于32或f(p)对应的字符是小写字母,则该字符不变
62:
f(p)值小于等于32或其ASCII值是偶数,则该字符不变
98:
f(p)值小于等于32或其ASCII值是奇数,则该字符不变
95:
f(p)值小于等于32或f(p)对应的字符是大写字母,则该字符不变
96:
f(p)值小于等于32或f(p)对应的字符是小写字母,则该字符不变
18:
原字符的ASCII值是偶数或计算后f(p)值小于等于32,则该字符不变
37:
原字符是大写字母或计算后f(p)值小于等于32,则该字符不变
97:
原字符是数字字符0至9或计算后f(p)值小于等于32,则该字符不变
10:
把字符串中的所有小写字母改写成该字母的下一个字母,如果是字母z,则改写成字母a
73:
把字符串中的所有小写字母改写成该字母的上一个字母,如果是字母a,则改写成字母z
11:
把s字符串中的所有字母改写成该字母的下一个字母,字母z改写成字母a(指针)
63:
把s字符串中的所有字符左移一个位置,串中的第一个字符移到最后(指针)
16:
把字符串中所有字符的ASCII值右移4位,然后把右移后的字符ASCII值再加上原字符的ASCII值
74:
把字符串中所有字符的ASCII值左移4位,如果左移后,其字符的ASCII值小于等于32或大于100,则原字符保持不变,否则就把左移后的字符ASCII值再加上原字符ASCII值,得到新的字符
100:
把字符串中的最后一个字符的ASCII值右移4位后加最后第二个字符的ASCII值,得到最后一个新的字符,第一个字符的ASCII值加原最后一个字符的ASCII值,得到第一个新的字符
17:
第一个字符加第二个字符=新字符,最后逆排序strrev(xx[i]);
四、字符串位置倒置:
3
3:
把字符串中所有小写字母o左边的字符串内容移到该串的右边存放,然后把小写字母o删除,余下的字符串内容移到已处理字符串的左边存放
五、字符串单词倒置:
4
4:
对行中以空格或标点符号为分隔的所有单词进行倒排.最后把已处理的字符串(应不含标点符号)仍按行重新存入字符串数组xx中
六、字符串左右排序交换:
445071
44:
从字符串中间一分为二,左边部分按字符的ASCII值降序排序,排序后左边部分与右边部分进行交换,如果原字符串长度为奇数,则最中间的字符不参加处理,字符仍放在原位置上
50:
从字符串中间一分为二,左边部分按字符的ASCII值升序排序,排序后左边部分与右边部分进行交换,如果原字符串长度为奇数,则最中间的字符不参加处理,字符仍放在原位置上
71:
从字符串中间一分为二,左边部分按字符的ASCII值降序排序,右边部分按字符的ASCII值升序排序,如果原字符串长度为奇数,则最中间的字符不参加排序,字符仍放在原位置上
七、字符串排序:
98843
9:
对字符按从大到小的顺序进行排序
88:
对字符按从小到大的顺序进行排序
43:
对字符串变量的下标为奇数的字符按其ASCII值从小到大的顺序进行排序
八、单词个数统计:
19
19:
统计一个长度为2的子字符串在另一个字符串中出现的次数
九、Fibonacci数列:
20
20:
求Fibonacci数列中大于t的最小的一个数while(fn<=t){...}returnfn;
十、迭代方法求方程:
21do{...}while(fabs(x0-x1)>=0.000001);
十一、平方根:
22
22:
求n以内(不包括n)同时能被3与7整除的所有自然数之和的平方根sreturnsqrt(s);
十二、实数运算:
23
23:
求出N个实数的平均值aver,以及实数的整数部分之和sumint以及小数部分之和sumdec
十三、完全平方数:
24
24:
100至999中寻找符合条件的整数并依次从小到大存入数组中,它既是完全平方数,又是两位数字相同
for(j=10;j*j<=i;j++)if(i==j*j&&(bw==sw||sw==gw||gw==bw))bb[cnt++]=i;returncnt;
十四、回文数:
25ltoa(n,xy,10);
25:
寻找并输出11至999之间的数m,它满足m,m2和m3均为回文数
十五、整数排序:
2561430454690
2:
把四位数各位上均是0或2或4或6或8的数从大到小的顺序存入数组b中
5:
按每个数的后三位的大小进行升序排列,如果后三位的数值相等,按原先的数值进行降序排列
6:
降序,升序
14:
如果该四位数连续大于该四位数以后的五个数且该数是奇数,把这些四位数按从小到大的顺序存入数组b中for(j=i+1;j<=i+5;j++)if(a[i]>a[j]&&a[i]%2)flag=1;else{flag=0;break;}
30:
小于偶数,从小到大
45:
大于该四位数以前偶数,从大到小
46:
大于奇数,且该数必须能被7整除,把这些四位数按从大到小的顺序存入数组b中
for(j=i-5;ja[j]&&a[i]%2&&a[i]%7==0)flag=1;else{flag=0;break;}
90:
将一正整数序列{K1,K2,...,K9}重新排列成一个新的序列.新序列中,比K1小的数都在K1的前面,比K1大的数都在K1的后面
十六、整数统计运算:
2670406591949279
26:
求出正整数totNum个数以及这些数右移1位后产生的新数是偶数的数的个数totCnt和满足此条件的这些数(右移前的值)的算术平均值totPjz
70:
求出正整数totNum个数以及这些数右移1位后产生的新数是奇数的数的个数totCnt和满足此条件的这些数(右移前的值)的算术平均值totPjz
40:
求出正整数totNum个数以及这些数各位数字之和是偶数的数的个数totCnt和满足此条件的这些数的算术平均值totPjz
65:
求出正整数totNum个数以及这些数各位数字之和是奇数的数的个数totCnt和满足此条件的这些数的算术平均值totPjz
91:
200个整数,求出奇数的个数cnt1和偶数的个数cnt2以及数组下标为偶数的元素值的算术平均值pj(保留2位小数)
94:
200个整数,求出奇数的个数cnt1和偶数的个数cnt2以及数组xx中值为偶数的算术平均值pj(保留2位小数)
92:
200个整数,求出最大数max及最大数的个数cnt和数组xx中能被3整除或能被7整除的算术平均值pj(保留2位小数)
79:
求出1到1000之内能被7或11整除但不能同时被7或11整除的所有整数放在数组a中,并通过n返回这些数的个数(指针)if(i%7==0&&i%11||i%7&&i%11==0)a[(*n)++]=i;
十七、整数各位数字运算:
68157869857789275348544980818767
68:
200个四位数,如果四位数各位上的数字均是奇数,则统计出满足此条件的个数cnt并把这些四位数按从大到小的顺序存入数组b中if(thou&&thou%2&&hun%2&&ten%2&&data%2)
15:
200个四位数,若一个四位数的千位数字上的值小于等于百位数字上的值,百位数字上的值小于等于十位数字上的值,以及十位数字上的值小于等于个位数字上的值,并且原四位数是偶数,则统计出满足此条件的个数cnt并把这些四位数按从小到大的顺序存入数组b中
78:
200个四位数,若一个四位数的千位数字上的值大于等于百位数字上的值,百位数字上的值大于等于十位数字上的值,以及十位数字上的值大于等于个位数字上的值,并且原四位数是奇数,则统计出满足此条件的个数cnt并把这些四位数按从小到大的顺序存入数组b中
69:
200个四位数,把一个四位数的千位数字上的值减去百位数字上的值再减去十位数字上的值最后减去个位数字上的值,如果得出的值大于等于零且原四位数是奇数,则统计出满足此条件的个数cnt并把这些四位数按从小到大的顺序存入数组b中if(thou-hun-ten-data>=0&&a[i]%2)b[cnt++]=a[i];
85:
200个四位数,把一个四位数的个位数字上的值减去千位数字上的值再减去百位数字上的值最后减去十位数字上的值,如果得出的值大于等于零且原四位数是偶数,则统计出满足此条件的个数cnt并把这些四位数按从小到大的顺序存入数组b中if(data-thou-hun-ten>=0&&a[i]%2==0)b[cnt++]=a[i];
77:
200个四位数,把一个四位数的千位数字上的值加上十位数字上的值恰好等于百位数字上的值加上个位数字上的值,并且原四位数是偶数,则统计出满足此条件的个数cnt并把这些四位数按从小到大的顺序存入数组b中if((thou+ten==hun+data)&&a[i]%2==0)b[cnt++]=a[i];
89:
200个四位数,把一个四位数的千位数字上的值加上个位数字上的值恰好等于百位数字上的值加上十位数字上的值,并且原四位数是奇数,则统计出满足此条件的个数cnt并把这些四位数按从小到大的顺序存入数组b中if((qw+gw)==(sw+bw)&&a[i]%2)b[cnt++]=a[i];
27:
300个四位数,求出千位数上的数减百位数上的数减十位数上的数减个位数上的数大于零的个数cnt,再把所有满足此条件的四位数依次存入数组b中,然后对数组b的四位数按从小到大的顺序进行排序
53:
300个四位数,求出千位数上的数减百位数上的数减十位数上的数减个位数上的数大于零的个数cnt,再把所有满足此条件的四位数依次存入数组b中,然后对数组b的四位数按从小到大的顺序进行排序
48:
300个四位数,求出千位数上的数加个位数上的数等于百位数上的数加十位数上的数的个数cnt,再把所有满足此条件的四位数依次存入数组b中,然后对数组b的四位数按从小到大的顺序进行排序
54:
300个四位数,求出千位数上的数加百位数上的数等于十位数上的数加个位数上的数的个数cnt,再把所有满足此条件的四位数依次存入数组b中,然后对数组b的四位数按从大到小的顺序进行排序
49:
300个四位数,求出千位数上的数减百位数减十位数上的数减个位数上的数大于零的个数cnt,再求出所有满足此条件的四位数平均值pjz1,以及不满足此条件的四位数平均值pjz2
80:
300个四位数,求出个位数上的数减千位数上的数减百位数上的数减十位数上的数大于零的个数cnt,再求出所有满足此条件的四位数平均值pjz1,以及不满足此条件的四位数平均值pjz2
81:
300个四位数,求出千位数上的数加百位数等于十位数上的数加个位数上的数的个数cnt,再求出所有满足此条件的四位数平均值pjz1,以及不满足此条件的四位数平均值pjz2
87:
300个四位数,求出千位数上的数加个位数等于百位数上的数加十位数上的数的个数cnt,再求出所有满足此条件的四位数平均值pjz1,以及不满足此条件的四位数平均值pjz2
67:
5000以内,千位数字与百位数字之和等于十位数字与个位数字之和,且千位数字与百位数字之和等于个位数字与千位数字之差的10倍.计算并输出这些四位自然数的个数cnt以及这些数的和sum
十八、整数各位打散组合运算:
2829515272765986
28:
200个四位数,把千位数字和十位数字重新组成一个新的十位数ab,以及把个位数字和百位数字组成另一个新的十位数cd,如果新组成的两个十位数ab-cd>=0且ab-cd<=10且两个数均是奇数,同时两个新数的十位数字均不为零,则将满足此条件的四位数按从大到小的顺序存入数组b中,并要计算满足上述条件的四位数的个数cntif((ab-cd)>=0&&(ab-cd)<=10&&ab%2==1&&cd%2==1&&ab>=10&&cd>=10)
29:
200个四位数,把千位数字和十位数字重新组成一个新的十位数ab,以及把个位数字和百位数字组成另一个新的十位数cd,如果新组成的两个十位数ab-cd>=10且ab-cd<=20且两个数均是偶数,同时两个新数的十位数字均不为零,则将满足此条件的四位数按从大到小的顺序存入数组b中,并要计算满足上述条件的四位数的个数cntif(ab-cd>=10&&ab-cd<=20&&ab%2==0&&cd%2==0&&qw!
=0&&gw!
=0)
51:
200个四位数,把千位数字和十位数字重新组成一个新的十位数,以及把个位数字和百位数字组成另一个新的十位数,如果新组成的两个十位数均是素数且新数的十位数字均不为零,则将满足此条件的四位数按从大到小的顺序存入数组b中,并要计算满足上述条件的四位数的个数cnt
52:
200个四位数,把千位数字和个位数字重新组成一个新的十位数,以及把百位数字和十位数字组成另一个新的十位数,如果新组成的两个十位数均是奇数并且两个十位数中至少有一个数能被5整除,同时两个新数的十位数字均不为零,则将满足此条件的四位数按从大到小的顺序存入数组b中,并要计算满足上述条件的四位数的个数cntif(ab%2&&cd%2&&(ab%5==0||cd%5==0)&&ab>=10&&cd>=10)
72:
200个四位数,把个位数字和千位数字重新组成一个新的十位数,以及把百位数字和十位数字组成另一个新的十位数,如果新组成的两个十位数均是偶数并且两个十位数中至少有一个数能被9整除,同时两个新数的十位数字均不为零,则将满足此条件的四位数按从大到小的顺序存入数组b中,并要计算满足上述条件的四位数的个数cntif((ab%9==0||cd%9==0)&&ab%2==0&&cd%2==0&&hun!
=0&&data!
=0)
76:
200个四位数,把个位数字和千位数字重新组成一个新的十位数,以及把百位数字和十位数字组成另一个新的十位数,如果新组成的两个十位数必须是一个奇数,另一个为偶数并且两个十位数中至少有一个数能被17整除,同时两个新数的十位数字均不为零,则将满足此条件的四位数按从大到小的顺序存入数组b中,并要计算满足上述条件的四位数的cnt
if((ab%2!
=cd%2)&&((ab%17==0||cd%17==0)&&ab>=10&&cd>=10))
59:
200个四位数,把千位数字和十位数字重新组成一个新的十位数ab,以及把个位数字和百位数字组成另一个新的十位数cd,如果新组成的两个十位数ab =0)&&cd%2! =1&&ab>=10&&cd>=10) 86: 200个四位数,把千位数字和十位数字重新组成一个新的十位数ab,以及把个位数字和百位数字组成另一个新的十位数cd,如果新组成的两个十位数ab>cd,ab必须是偶数且能被5整除,cd必须是奇数,同时两个新数的十位数字均不为零,则将满足此条件的四位数按从大到小的顺序存入数组b中,并要计算满足上述条件的四位数的个数cntif((ab-cd)>0&&(ab%2! =1&&ab%5==0)&&cd%2==1&&ab>=10&&cd>=10) 十九、方差运算: 338393 33: 计算出xx中偶数的个数even,奇数的平均值ave1,偶数的平均值ave2以及方差totfc的值 83: 计算出xx中奇数的个数odd,奇数的平均值ave1,偶数的平均值ave2以及所有奇数的方差totfc的值 93: 分别计算出xx中奇数的个数odd,偶数的个数even,平均值aver以及方差totfc的值 for(i=0;i 二十、级数运算: 35 35: Sn 二十一、选票: 395884 39: 内容均为字符0和1,1表示此人被选中,0表示此人未被选中,全选或不选均为无效的选票 58: 内容均为字符0和1,1表示此人被选中,0表示此人未被选中,若一张选票人数小于等于5个人时被认为无效的选票 84: 内容均为字符0和1,1表示此人被选中,0表示此人未被选中,若一张选票人数大于5个人时被认为无效的选票 二十二、SIX/NINE: 41 41: 计算出自然数SIX和NINE,它们满足的条件是SIX+SIX+SIX=NINE+NINE的个数cnt以及满足此条件所有的SIX与NINE的和SUM 二十三、出圈: 57 习题解答 第1题答案 voidnum(intm,intk,intxx[]) { /*定义整型变量data,并初始化为m+1(即大于整数m且紧靠m的第1个整数)*/ intdata=m+1; inthalf,n=0,i; while (1) { /*判断data是否为素数*/ half=data/2; for(i=2;i<=half;i++) if(data%i==0) break; if(i>half)/*如果此时i>half说明data是一个素数*/ { xx[n]=data;/*将data存入数组xx*/ n++;/*让计数变量n增1*/ } /*如果已经找足k个素数了,就通过break语句跳出循环*/ if(n>=k) break; data++;/*继续找下一个素数*/ } } 第2题答案 voidjsVal() { intbb[4]; inti,j,k,flag; for(i=0;i<200;i++)/*循环以遍历数组a中的每一个四位数*/ { bb[0]=a[i]/1000;/*将a[i]的千位数字存入bb[0]*/ bb[1]=a[i]%1000/100;/*将a[i]的百位数字存入bb[1]*/ bb[2]=a[i]%100/10;/*将a[i]的十位数字存入bb[2]*/ bb[3]=a[i]%10;/*将a[i]的个位数字存入bb[3]*/ for(j=0;j<4;j++)/*循环以遍历数组bb,即a[i]的每一位*/ { /*根据当前位是否能被2整除,来设置旗标变量flag为1还是0*/ if(bb[j]%2==0) { flag=1; } else { flag=0; /*如果有1位不能被2整除,后面的位就不必判断了,跳出该循环*/ break; } } if(flag==1)/*如果此时flag的值为1说明所有位均能被2整除*/ { b[cnt]=a[i];/*将此数存入数组b*/ cnt++;/*计数值cnt增1*/ } } /*对数组b的前cnt个数进行选择排序*/ for(i=0;i for(j=i+1;j /*如果b[i]因小于它后面的数b[j]而交换两者,说明此排序为降序*/ if(b[i] { k=b[i]; b[i]=b[j]; b[j]=k; } 2 } 第3题答案 voidStrOR(void) { inti,j,k; charbuf[80]; for(i=0;i { j=strlen(xx[i])-1;/*求出当前行最后一个字符的位置*/ /*从最后一个字符往前循环遍历当前行,直到碰到小写字母'o'或到行首*/ while(xx[i][j]! ='o'&&j>=0) j--; if(j<0)/*如果j<0说明找到行首也没发现一个'o'*/ continue;/*则当前行不用操作,去下一行*/ /*找到字母'o',用字符串结束标志0(或写成'\0')替换之,使该行一分为二*/ xx[i][j]=0; strcpy(buf,&xx[i][j+1]);/*将后半截字符串复制到缓存行buf中*/ /*从第1个字符开始循环遍历前半截字符串*/
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 全国 计算机等级考试 三级 语言 南开 100 分类 提纲 答案