C语言程序设计题目及答案.doc

上传人:doc321 文档编号:14841090 上传时间:2022-02-20 格式:DOC 页数:42 大小:96KB
返回 下载 相关 举报
C语言程序设计题目及答案.doc_第1页
第1页 / 共42页
C语言程序设计题目及答案.doc_第2页
第2页 / 共42页
C语言程序设计题目及答案.doc_第3页
第3页 / 共42页
C语言程序设计题目及答案.doc_第4页
第4页 / 共42页
C语言程序设计题目及答案.doc_第5页
第5页 / 共42页
点击查看更多>>
资源描述

《C语言程序设计题目及答案.doc》由会员分享,可在线阅读,更多相关《C语言程序设计题目及答案.doc(42页珍藏版)》请在三一文库上搜索。

1、40021程序填空,不要改变与输入输出有关的语句。输入一个正整数repeat (0repeat10),做repeat次下列运算:输入1 个正整数n,计算 s 的前n项的和(保留 4 位小数)。s = 1 + 1/2! +.+ 1/n! 例:括号内是说明输入:2 (repeat=2)2 (n=2)10 (n=10)输出:1.50001.7183#include stdio.hint main( )int ri,repeat;int i,n;float s,t;scanf(%d,&repeat);for(ri=1;ri=repeat;ri+)scanf(%d,&n);/*-*/printf(%0.

2、4fn,s);40022程序填空,不要改变与输入输出有关的语句。输入一个正整数repeat (0repeat10),做repeat次下列运算:输入2 个正整数m和n(1=m,n=1000),输出m 和n之间所有满足各位数字的立方和等于它本身的数。输出语句:printf(%dn, i);例:括号内是说明输入:2 (repeat=2)100 400 (m=100, n=400)1 100 (m=1, n=100)输出:153 (1*1*1+5*5*5+3*3*3=153)370 (3*3*3+7*7*7=370)371 (3*3*3+7*7*7+1*1*1=371)1#include stdio.

3、hint main( )int ri,repeat;int i, digit, m, n, number, sum;scanf(%d,&repeat);for(ri=1;ri=repeat;ri+)scanf(%d%d, &m, &n);/*-*/40023程序填空,不要改变与输入输出有关的语句。输入一个正整数repeat (0repeat10),做repeat次下列运算:输入2 个正整数m和n(1=m,n=500),统计并输出m 和n之间的素数的个数以及这些素数的和。例:括号内是说明输入:3 (repeat=2)1 10 (m=1, n=10)20 35 (m=20, n=35)14 16

4、(m=14, n=16)输出:count=4, sum=17 (1到10之间有4个素数:2,3,5,7)count=3, sum=83 (20到35之间有3个素数:23, 29, 31)count=0, sum=0 (14到16之间没有素数)#include stdio.h#include math.hint main( )int ri,repeat;int count, digit, i, j, k, m, n, sum;scanf(%d,&repeat);for(ri=1;ri=repeat;ri+)scanf(%d%d, &m, &n);/*-*/printf(count=%d, sum

5、=%dn, count, sum);40031程序填空,不要改变与输入输出有关的语句。输入一个正整数repeat (0repeat10),做repeat次下列运算:输入一行字符,统计其中单词的个数。各单词之间用空格分隔,空格数可以是多个。例:括号内是说明输入2 (repeat=2)Reold building room 123Programming is fun输出43 #include int main( )int ri, repeat;int count, word;char c;scanf(%d, &repeat);getchar();for(ri=1; ri=repeat; ri+)c

6、 = getchar();/*-*/printf(%dn, count);40032程序填空,不要改变与输入输出有关的语句。输入一个正整数repeat (0repeat10),做repeat次下列运算:输入一个整数,从高位开始逐位输出它的各位数字。输出语句:printf(%-2d, digit);例:括号内是说明输入3 (repeat=3) 123456-6008输出1 2 3 4 5 66 0 08#include int main( )int ri, repeat;int digit;long in, temp, pow;scanf(%d, &repeat);for(ri=1; ri=re

7、peat; ri+)scanf(%ld, &in);/*-*/printf(n);40033程序填空,不要改变与输入输出有关的语句。输入一个正整数repeat (0repeat10),做repeat次下列运算:程序模拟简单运算器的工作:输入一个算式(没有空格),遇等号=说明输入结束,输出结果。假设计算器只能进行加减乘除运算,运算数和结果都是整数,4种运算符的优先级相同,按从左到右的顺序计算。例:括号内是说明输入2 (repeat=2)15+2/3=1+2*10-10/2=输出510 #include int main( )int ri, repeat;int op1, op2, res;cha

8、r operator;scanf(%d, &repeat);for(ri=1; ri=repeat; ri+)scanf(%d, &op1);operator = getchar();/*-*/printf(%dn, res);50001程序填空,不要改变与输入输出有关的语句。输入一个正整数repeat (0repeat10),做repeat次下列运算:输入1 个正整数n,计算 s 的前n项的和(保留 4 位小数)。s = 1 + 1/2! +.+ 1/n! 要求定义并调用函数fact(n)计算n的阶乘。例:括号内是说明输入:2 (repeat=2)2 (n=2)10 (n=10)输出:1.5

9、0001.7183#include stdio.hint main( )int ri,repeat;int i,n;double s;double fact(int n);scanf(%d,&repeat);for(ri=1;ri=repeat;ri+)scanf(%d,&n);/*-*/printf(%0.4fn,s);/*-*/50002程序填空,不要改变与输入输出有关的语句。输入一个正整数repeat (0repeat10),做repeat次下列运算:输入2个正整数a和n, 求a+aa+aaa+aaa(n个a)之和。要求定义并调用函数fn(a,n),它的功能是返回aaa(n个a)。例如,

10、fn(3,2)的返回值是33。例:括号内是说明输入2 (repeat=2)2 3 (a=2, n=3)8 5 (a=8, n=5)输出246 (2+22+222)98760 (8+88+888+8888+88888) #include void main()int ri, repeat;int i, n;long a, sn;long fn(long a, int n);scanf(%d, &repeat);for(ri=1; ri=repeat; ri+)scanf(%ld%d, &a, &n);/*-*/printf(%ldn,sn);/*-*/50003程序填空,不要改变与输入输出有关的

11、语句。输入一个正整数repeat (0repeat10),做repeat次下列运算:读入1 个整数,统计并输出该数中2的个数。要求定义并调用函数countdigit(number,digit),它的功能是统计整数number中数字digit的个数。例如,countdigit(10090,0)的返回值是3。例:括号内是说明输入:3 (repeat=3)-219022345543输出:count=2 (-21902中有2个2)count=1 (有1个2)count=0 (345543中没有2)#include stdio.hint main( )int ri,repeat;int count;lo

12、ng in; int countdigit(long number, int digit);scanf(%d,&repeat);for(ri=1;ri=repeat;ri+)scanf(%ld,&in);/*-*/printf(count=%dn,count);/*-*/50004程序填空,不要改变与输入输出有关的语句。输入一个正整数repeat (0repeat10),做repeat次下列运算:输入一个正整数n,如果它是素数,输出YES,否则,输出NO(素数就是只能被1和自身整除的正整数,1不是素数,2是素数)。要求定义并调用函数prime(m)判断m是否为素数。例:括号内是说明输入4 (r

13、epeat=4) 1 2 9 17输出NO (1不是素数)YES (2是素数) NO (9不是素数) YES (17是素数)#include #include int main( )int ri, repeat;int flag,n;int prime(int m);scanf(%d, &repeat);for(ri=1; ri=repeat; ri+)scanf(%d, &n);/*-*/if(flag) printf(YESn);else printf(NOn);/*-*/50005程序填空,不要改变与输入输出有关的语句。输入一个正整数repeat (0repeat10),做repeat次

14、下列运算:输入2 个正整数m和n(1=m,n=500),统计并输出m 和n之间的素数的个数以及这些素数的和(素数就是只能被1和自身整除的正整数,1不是素数,2是素数)。要求定义并调用函数prime(m)判断m是否为素数。例:括号内是说明输入:3 (repeat=3)1 10 (m=1, n=10)20 35 (m=20, n=35)14 16 (m=14, n=16)输出:count=4, sum=17 (1到10之间有4个素数:2,3,5,7)count=3, sum=83 (20到35之间有3个素数:23, 29, 31)count=0, sum=0 (14到16之间没有素数)#inclu

15、de stdio.h#include math.hint main( )int ri,repeat;int count, i, n, sum;int prime(int m);scanf(%d,&repeat);for(ri=1;ri=repeat;ri+)scanf(%d%d, &m, &n);/*-*/printf(count=%d, sum=%dn, count, sum);/*-*/50006程序填空,不要改变与输入输出有关的语句。输入一个正整数repeat (0repeat10),做repeat次下列运算:输入2 个正整数m和n(1=m,n=10000),输出m 和n之间所有的Fib

16、onacci数。Fibonacci 序列(第1项起):1 1 2 3 5 8 13 21 .要求定义并调用函数fib(n),它的功能是返回第n项Fibonacci数。例如,fib(7)的返回值是13。输出语句:printf(%d , f);例:括号内是说明输入:3 (repeat=3)1 10 (m=1, n=10)20 100 (m=20, n=100)1000 6000 (m=1000, n=6000)输出:1 1 2 3 5 8 (1到10之间的Fibonacci数)21 34 55 89 (20到100之间的Fibonacci数)1597 2584 4181 (1000到6000之间的

17、Fibonacci数)#include stdio.h#include math.hint main( )int ri,repeat;int i, m, n;long f;long fib(int n);scanf(%d,&repeat);for(ri=1;ri=repeat;ri+)scanf(%d%d, &m, &n);/*-*/printf(n);/*-*/50007程序填空,不要改变与输入输出有关的语句。输入一个正整数repeat (0repeat10),做repeat次下列运算:输入2 个正整数m和n(1=m,n=1000),输出m 到n之间的所有完数(完数就是因子和与它本身相等的数

18、)。要求定义并调用函数factorsum(number),它的功能是返回number的因子和。例如,digitsum(12)的返回值是16(1+2+3+4+6)。输出语句:printf(%d , i);例:括号内是说明输入:2 (repeat=2)20 500 (m=100, n=400)1 100 (m=1, n=100)输出:28 4961 6 28#include stdio.hint main( )int ri,repeat;int i, m, n;long factorsum(int number); scanf(%d,&repeat);for(ri=1;ri=repeat;ri+)

19、scanf(%d%d, &m, &n);/*-*/printf(n);/*-*/50008程序填空,不要改变与输入输出有关的语句。输入一个正整数repeat (0repeat10),做repeat次下列运算:输入2 个正整数m和n(1=m,n=1000),输出m 到n之间的所有满足各位数字的立方和等于它本身的数。要求定义并调用函数is(number)判断number的各位数字之立方和是否等于它本身。输出语句:printf(%d , i);例:括号内是说明输入:2 (repeat=2)100 400 (m=100, n=400)1 100 (m=1, n=100)输出:153 370 371 (

20、1*1*1+5*5*5+3*3*3=153; 3*3*3+7*7*7=370; 3*3*3+7*7*7+1*1*1=371)1#include stdio.hint main( )int ri,repeat;int i, m, n;int is(int number); scanf(%d,&repeat);for(ri=1;ri=repeat;ri+)scanf(%d%d, &m, &n);/*-*/printf(n);/*-*/50009程序填空,不要改变与输入输出有关的语句。输入一个正整数repeat (0repeat10),做repeat次下列运算:输入一个整数,将它逆序输出。要求定义并

21、调用函数reverse(number),它的功能是返回number的逆序数。例如reverse(12345)的返回值是54321。例:括号内是说明输入4 (repeat=4) 123456 -100 -2 99输出654321-1-199#include int main( )int ri, repeat;long in, res;long reverse(long number); scanf(%d, &repeat);for(ri=1; ri=repeat; ri+)scanf(%ld, &in);/*-*/printf(%ldn, res);/*-*/50010程序填空,不要改变与输入输

22、出有关的语句。输入一个正整数 repeat (0repeat10),做 repeat 次下列运算:输入1 个正整数n,将其转换为二进制后输出。要求定义并调用函数 dectobin(n),它的功能是输出 n 的二进制。例如,调用dectobin(10),输出1010。输出语句:printf(%d);例:括号内是说明输入:2 (repeat=2)15 (n=2)100 (n=10)输出:11111100100#include stdio.hint main( )int ri,repeat;int i,n;void dectobin(int n);scanf(%d,&repeat);for(ri=1

23、;ri=repeat;ri+)scanf(%d,&n);/*-*/printf(n);/*-*/60001程序填空,不要改变与输入输出有关的语句。输入一个正整数repeat (0repeat10),做repeat次下列运算:输入一个正整数n (1n10),再输入n个整数,输出平均值(保留2位小数)。例:括号内是说明输入2 (repeat=2) 3 1 2 -65 12 2 5 4 0 输出aver=-1.00aver=4.60#include int main( )int ri, repeat;int i, n, sum;float aver;int a10;scanf(%d, &repeat

24、);for(ri=1; ri=repeat; ri+)scanf(%d, &n);for(i=0; in; i+)scanf(%d, &ai);/*-*/printf(aver=%.2fn, aver);60002程序填空,不要改变与输入输出有关的语句。输入一个正整数repeat (0repeat10),做repeat次下列运算:输入一个正整数n (1n10),再输入n个整数,输出最大值极其下标(设最大值惟一,下标从0开始)。例:括号内是说明输入3 (repeat=3) 3 1 6 43 10 8 15 1 2 5 4 0 输出max=6,index=1 (最大值6的下标是1)max=10,i

25、ndex=0 (最大值10的下标是0)max=5,index=2 (最大值5的下标是2)#include int main( )int ri, repeat;int i, index, n;int a10;scanf(%d, &repeat);for(ri=1; ri=repeat; ri+)scanf(%d, &n);for(i=0; in; i+)scanf(%d, &ai);/*-*/printf(max=%d,index=%dn, aindex,index);60003程序填空,不要改变与输入输出有关的语句。输入一个正整数repeat (0repeat10),做repeat次下列运算:

26、输入一个正整数n (1n10),再输入n个整数,按逆序输出这些数。例:括号内是说明输入2 (repeat=2) 4 10 8 1 25 1 2 5 4 0 输出2 1 8 100 4 5 2 1#include int main( )int ri, repeat;int i, n, temp;int a10;scanf(%d, &repeat);for(ri=1; ri=repeat; ri+)scanf(%d, &n);for(i=0; in; i+)scanf(%d, &ai);/*-*/for(i=0; in; i+)printf(%d , ai);printf(n);60004程序填空

27、,不要改变与输入输出有关的语句。输入一个正整数repeat (0repeat10),做repeat次下列运算:输入一个正整数n (1n=10),再输入n个整数,将最小值与第一个数交换,最大值与最后一个数交换,然后输出交换后的n个数。例:括号内是说明输入3 (repeat=3) 5 4 3 5 1 24 1 5 6 75 5 4 3 2 1 输出1 3 2 4 51 5 6 71 4 3 2 5#include int main( )int ri, repeat;int i, index, n, t;int a10;scanf(%d, &repeat);for(ri=1; ri=repeat;

28、ri+)scanf(%d, &n);for(i=0; in; i+)scanf(%d, &ai);/*-*/for(i=0; in; i+) printf(%d , ai);printf(n);60005程序填空,不要改变与输入输出有关的语句。输入一个正整数repeat (0repeat10),做repeat次下列运算:输入一个正整数n (1n=10),再输入n个整数,将它们从大到小排序后输出。例:括号内是说明输入3 (repeat=3) 4 5 1 7 63 1 2 35 5 4 3 2 1 输出7 6 5 1 3 2 15 4 3 2 1#include int main( )int ri

29、, repeat;int i, index, k, n, temp;int a10;scanf(%d, &repeat);for(ri=1; ri=repeat; ri+)scanf(%d, &n);for(i=0; in; i+)scanf(%d, &ai);/*-*/for(i=0; in; i+) printf(%d , ai);printf(n);60011程序填空,不要改变与输入输出有关的语句。输入一个正整数repeat (0repeat10),做repeat次下列运算:读入 1 个正整数 n(1n6), 再读入 n 阶方阵 a , 计算该矩阵除副对角线、最后一列和最后一行以外的所有

30、元素之和.(副对角线为从矩阵的右上角至左下角的连线)例:括号内是说明输入:1 (repeat=1)4 (n=4)2 3 4 15 6 1 17 1 8 11 1 1 1sum=35 (2+3+4+5+6+7+8=35)#include stdio.hint main( ) int ri,repeat;int a66,i,j,n,sum;scanf(%d,&repeat);for(ri=1;ri=repeat;ri+)scanf(%d,&n);for (i=0;in;i+)for(j=0;jn;j+)scanf(%d,&aij);/*-*/printf(sum=%dn,sum);60012程序填

31、空,不要改变与输入输出有关的语句。输入一个正整数repeat (0repeat10),做repeat次下列运算:输入 1 个正整数 n(1n10), 输出一张 20 以内的加法口诀表. 加数与被加数都不大于 n, 分列第一行和第一列.(将加数、被加数、和放入一个二维数组中, 再输出该数组)例:括号内是说明输入:1 (repeat=1)3 (n=3)输出:+ 1 2 3 1 2 2 3 4 3 4 5 6 #include stdio.hint main( ) int ri,repeat;int i,j,n,a1010;scanf(%d,&repeat);for(ri=1;ri=repeat;r

32、i+)scanf(%d,&n);/*-*/for( i=0; i=n; i+ )for( j=0; j=n; j+ )if(i=0&j=0) printf( %-4c, +);else if(i=0|j=i) printf( %-4d, aij);printf(n);60013程序填空,不要改变与输入输出有关的语句。输入一个正整数repeat (0repeat10),做repeat次下列运算:输入1 个正整数 n (1n6)和n 阶方阵a中的元素,如果a是上三角矩阵, 输出YES, 否则, 输出NO。(上三角矩阵,即主对角线以下的元素都为0, 主对角线为从矩阵的左上角至右下角的连线)例:括号内

33、是说明输入:2 (repeat=2)3 1 2 3 0 4 5 0 0 6 (n=3)2 1 0 -8 2 (n=2)输出:YES NO#include stdio.h#include math.hint main( ) int ri,repeat;int a66,flag,i,j,n;scanf(%d,&repeat);for(ri=1;ri=repeat;ri+)scanf(%d,&n);for (i=0;in;i+)for (j=0;jn;j+)scanf(%d,&aij);/*-*/if(flag) printf(YESn);else printf(NOn);60014程序填空,不要改

34、变与输入输出有关的语句。输入一个正整数repeat (0repeat10),做repeat次下列运算:输入2 个正整数 m 和 n (1m, n6),然后输入该m 行 n 列矩阵a中的元素,分别求出各行元素之和, 并存入一维数组row中, 再输出row.例:括号内是说明输入:1 (repeat=1)3 2 (m=3, n=2)6 31 -83 12输出:sum of row 0 is 9sum of row 1 is -7sum of row 2 is 15#include stdio.h#include math.hint main( ) int ri,repeat;int flag,i,j

35、,m,n,sum;int a66, row6;scanf(%d,&repeat);for(ri=1;ri=repeat;ri+)scanf(%d%d,&m,&n);for(i=0;im;i+)for(j=0;jn;j+)scanf(%d,&aij);/*-*/for(i=0;im;i+)printf(sum of row %d is %dn,i,rowi);60019程序填空,不要改变与输入输出有关的语句。输入一个正整数repeat (0repeat10),做repeat次下列运算:输入 1 个正整数 n(1n6)和n 阶方阵a中的元素,如果找到a 的鞍点(鞍点的元素值在该行上最大, 在该列上

36、最小), 就输出它的下标, 否则,输出NO(设a最多有1个鞍点)。例:括号内是说明输入:2 (repeat=2)4 1 7 4 1 4 8 3 6 1 6 1 2 0 7 8 9 (n=4)2 1 7 4 1 (n=2)输出:a21=6NO #include stdio.hint main( ) int ri,repeat;int flag,i,j,k,row,col,n,a66;scanf(%d,&repeat);for(ri=1;ri=repeat;ri+)scanf(%d,&n);for(i=0; in; i+)for(j=0; jn; j+)scanf(%d,&aij);/*-*/if

37、(flag)printf(a%d%d=%dn, row, col,arowcol);elseprintf(NOn);60021程序填空,不要改变与输入输出有关的语句。连续输入一批以 # 结束的字符串(字符串的长度不超过80),遇 # 则全部输入结束。统计并输出每个字符串的有效长度。例:括号内是说明输入:hello 12#abc+0# (连续输入2个字符串hello 12和abc+0)输出:8 (hello 12的有效长度是8)5 (abc+0的有效长度是5) #include stdio.h#define MAXLEN 80int main( ) int len,count,i,k;char

38、ch,oldch,strMAXLEN;oldch= ;while(ch=getchar()!=#|oldch!=#)k=0;while(ch!=#& k MAXLEN-1)strk+=ch;ch=getchar();oldch=#;strk=;len=0;for(i=0;stri;i+)len+;printf(%dn,len);60022程序填空,不要改变与输入输出有关的语句。连续输入一批以 # 结束的字符串(字符串的长度不超过80),遇 # 则全部输入结束。统计并输出每个字符串中大写辅音字母的个数(大写辅音字母:除A,E,I,O,U以外的大写字母)。例:括号内是说明输入:HELLO#IT12

39、#uieiaba# (连续输入3个字符串)输出:3 (HELLO中有3个大写辅音字母)1 (IT12中有1个大写辅音字母) 0 (uieiaba中没有大写辅音字母) #include stdio.h#define MAXLEN 80int main( ) int count,i,k;char ch,oldch,strMAXLEN;oldch= ;while(ch=getchar()!=#|oldch!=#)k=0;while(ch!=#& k MAXLEN-1)strk+=ch;ch=getchar();oldch=#;strk=;/*-*/printf(%dn,count);60023程序填

40、空,不要改变与输入输出有关的语句。输入一个字符并回车,再连续输入一批以 # 结束的字符串(字符串的长度不超过80),遇 # 则全部输入结束。在每个字符串中查找该字符,如果找到,则输出该字符在字符串中所对应的最大下标(下标从0开始);否则输出“Not Found”。例:括号内是说明输入:m (输入一个字符)moon#programming#1234# (输入3个字符串moon,programming,1234)输出:0 (m在moon中对应的最大下标是0)7 (m在programming中对应的最小下标是7)Not Found (1234中没有m)#include stdio.h#define MAXLEN

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1