100道C语言编程题参考答案
C经典编程100题~附答案
C语言经典程序100题(完整版)【程序1】题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?1.程序分析:可填在百位、十位、个位的数字都是1、2、3、4。
组成所有的排列后再去掉不满足条件的排列。
2.程序源代码:#include "stdio.h"#include "conio.h"main(){int i,j,k;printf("\n");for(i=1;i<5;i++) /*以下为三重循环*/for(j=1;j<5;j++)for (k=1;k<5;k++){if (i!=k&&i!=j&&j!=k) /*确保i、j、k三位互不相同*/printf("%d,%d,%d\n",i,j,k);}getch();}==============================================================【程序2】题目:企业发放的奖金根据利润提成。
利润(I)低于或等于10万元时,奖金可提10%;利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可可提成7.5%;20万到40万之间时,高于20万元的部分,可提成5%;40万到60万之间时高于40万元的部分,可提成3%;60万到100万之间时,高于60万元的部分,可提成1.5%,高于100万元时,超过100万元的部分按1%提成,从键盘输入当月利润I,求应发放奖金总数?1.程序分析:请利用数轴来分界,定位。
注意定义时需把奖金定义成长整型。
2.程序源代码:#include "stdio.h"#include "conio.h"main(){long int i;int bonus1,bonus2,bonus4,bonus6,bonus10,bonus;scanf("%ld",&i);bonus1=100000*0. 1;bonus2=bonus1+100000*0.75;bonus4=bonus2+200000*0.5;bonus6=bonus4+200000*0.3;bonus10=bonus6+400000*0.15;if(i<=100000)bonus=i*0.1;else if(i<=200000)bonus=bonus1+(i-100000)*0.075;else if(i<=400000)bonus=bonus2+(i-200000)*0.05;else if(i<=600000)bonus=bonus4+(i-400000)*0.03;else if(i<=1000000)bonus=bonus6+(i-600000)*0.015;elsebonus=bonus10+(i-1000000)*0.01;printf("bonus=%d",bonus);getch();}==============================================================【程序3】题目:一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?1.程序分析:在10万以内判断,先将该数加上100后再开方,再将该数加上268后再开方,如果开方后的结果满足如下条件,即是结果。
C语言基础选择题100道(附答案)01
C语⾔基础选择题100道(附答案)011. 以下选项中可⽤作 C 语⾔合法⽤户标识符的是A) 2aB)voidC)-abcD) _123答案:D2. 以下选项中合法的 C 语⾔赋值语句是A)++i;B)a=b=34C)a=3,b=9D)k=int( a+b );答案:A3. 有以下程序段,其中的变量已定义为 int 类型sum = pad = 5; pAd = sum++, pAd++, ++pAd;printf( “%d\n”, pad );程序段的输出结果是A)4B)5C)6D)7答案:B4. sizeof( double ) 是A)⼀个整型表达式B)⼀个函数调⽤C)⼀个双精度表达式D)不合法的表达形式答案:A5. 有以下程序#include <stdio.h>main(){int a=2, c=5;printf(“a=%%d,b=%%d\n”, a, c );}程序运⾏后的输出结果是A)a=%d,b=%dB)a=%2,b=%5C)a=%%d,b=%%dD)a=2,b=5答案:A6. 有以下程序#include <stdio.h>#include <math.h>main(){int a=1, b=4, c=2;double x=10.5, y=4.0, z;z = ( a+b )/c + sqrt( y ) * 1.2 / c + x;printf("%f\n", z);}程序运⾏后的输出结果是程序运⾏后的输出结果是A)13.700000B)14.000000C)15.400000D)14.900000答案:A7. 若有定义语句:int a=12;,则执⾏语句:a+= a-= a*a;后,a的值是A)264B)552C)144D)-264答案:D8. C 语⾔程序的模块化是通过以下哪个选项实现的A)变量B)语句C)函数D)程序⾏答案:C9. A)1.0/a/b/cB)1/(a b c)C)1.0/a b cD)1/a/b/(double)c答案:A10. 有以下程序#include <stdio.h>main(){int x=010, y=10;printf("%d,%d\n", ++x, y–);}程序运⾏后的输出结果是A) 10,9B)11,10C)010,9D) 9,10答案:D11. 以下选项中叙述正确的是A)C 语⾔的标识符可分为关键字、预定义标识符和⽤户标识符三类B)C 语⾔的标识符可分为语句、变量和关键字三类C)C 语⾔的标识符可分为函数名、变量和预定义标识符三类D)C 语⾔的标识符可分为运算符、⽤户标识符和关键字三类答案:A12. 以下选项中叙述正确的是A)函数体必须由 { 开始B)C 程序必须由 main 语句开始C)C 程序中的注释可以嵌套D)C 程序中的注释必须在⼀⾏完成答案:A13. 以下选项中叙述正确的是A)结构化程序的三种基本结构是循环结构、选择结构、顺序结构B)C 语⾔源程序不编译也能直接运⾏C)使⽤ N-S 流程图不能描述复杂算法D)计算机能够直接运⾏ C 语⾔源程序,不必进⾏任何转换D)计算机能够直接运⾏ C 语⾔源程序,不必进⾏任何转换答案:A14. 以下选项中叙述正确的是A)使⽤三种基本结构就可以实现任何复杂算法B)只要程序包含了三种基本结构中的任意⼀种,就是结构化程序C)程序语法错误要在运⾏时才能发现D)可运⾏ C 语⾔程序不需要包含 main()函数答案:A15. 以下选项中,合法的 C 语⾔常量是A) "\2.0B)‘C++’C) 1.234D)2Kb答案:C16. 以下选项中,合法的 C 语⾔实数是A).2e0B)3.1e0.4C)E13D)7.12E答案:A17. 设 a,b,c 是整型变量且均已赋值,则以下选项中错误的是A)a = (b = 3) = 1;B)a = (b = 2) + c;C)a = b = c + 10;D)a = 1 + (b = c = 2);答案:A18. 有如下程序#include <stdio.h>main(){int x = 072;printf("%d\n", x+1);}程序运⾏后的输出结果是A)72B)73C)115D)59答案:D19. 以下选项中叙述正确的是A)C 程序中的语句要经过编译才能转换成⼆进制机器指令B)算法需要包含所有三种基本结构C)有些算法不能⽤三种基本结构来表达D)简单算法的操作步骤不能超过 20 步答案:A20. 以下选项中叙述正确的是A)复杂任务可以分解成简单⼦任务B)C 语⾔程序中的所有函数必须保存在同⼀个源⽂件中C)全部三种基本结构都包含的才是结构化程序D)C 语⾔程序可以定义多个不同内容的 main 函数答案:A21. 以下选项中,合法的数值型常量是A) 092B)“A”B)“A”C) 3.1415D)0xDH答案:C22. 以下选项中,合法的实数是A) E1.3B) 4.5E2C)7.11ED)1.2E1.2答案:B23. 若有定义 int a, b, c; 以下选项中的赋值语句正确的是A)a = (b = c) + 1;B)(a = b) = c = 1;C)a = (b == c) = 1;D)a + b = c;答案:A24. 有如下程序#include <stdio.h>main(){int x = 0x13;printf("%d\n", x+1);}程序运⾏后的输出结果是A)13B)14C)12D)20答案:D25. 以下叙述中错误的是A)书写风格良好的程序执⾏效率⾼B)书写风格良好的程序易读性好C)C 程序可以在⼀⾏上写多条语句D)C 程序允许将⼀条语句分写在多⾏上答案:A26. 以下选项中不能正确表⽰数值 10000 的实型常量是A)1.0E4.0B)1.E4C)10E3D)1.0e4答案:A27. 设有定义:int a=0,b=1,c=1;以下选项中,表达式值与其它三个不同的是A) a=b=cB) b=a= =cC)a=c= =bD)c=a!=c答案:B28. 设有两⾏定义语句:int scanf;float case;则以下叙述正确的是A)第 1 ⾏语句不合法B)两⾏定义语句都合法C)第 2 ⾏语句不合法D)两⾏定义语句都不合法答案:C29. 设有定义:double x=2.12;,以下不能完整输出变量 x 值的语句是A)printf(“x=%5.0f\n”,x);B)printf(“x=%f\n”,x);C)printf(“x=%lf\n”,x);D)printf(“x=%0.5f\n”,x);答案:A30. 设有定义:int a,b; float x; ,则以下选项中对语句所作的注释叙述错误的是A)scanf("%d%d%f",&a,&b); /* 多余的格式符%f 完全不起作⽤ /B)scanf("%d%d",&a,&b,&x); / 多余的输⼊项不能获得输⼊数据 /C)scanf("%d%f%d",&a,&b,&x); / 输⼊项与格式符类型不匹配,变量 b 和 x 得不到正确的输⼊数据 /D)scanf(“Input:%d%d”,&a,&b); / 格式串中允许加⼊格式符以外的字符串 */答案:A31. 结构化程序由顺序、选择、循环三种基本结构组成,以下相关叙述错误的是A)三种基本结构不可以嵌套使⽤B)顺序结构是按语句在程序中的先后顺序逐条执⾏,没有分⽀,没有转移C)选择结构是根据条件决定执⾏不同分⽀中的语句D)循环结构是根据条件决定是否重复、重复执⾏多少次循环体语句答案:A32. 以下能正确表述算式 sin(2πr+30°)的 C 语⾔表达式是A)sin(23.14r+3.1430/180.0)B)sin(2πr+ 30 )C)sin(23.14r+ 30 )D)sin(23.14r+303.14/360.0)答案:A33. 设有定义:int x=11,y=12,z=0;,以下表达式值不等于 12 的 是A) (z,x,y)B)(z=x,y)C)z=(x,y)D) z=(x==y)答案:D34. 以下可以将任意⼀个两位整数n的个位数与⼗位数对换的表达式为A)(n-n/10*10)10+n/10B)n-n/1010+n/10C)n/10+(n-n/10)D)(n-n/10)*10+(n/10)答案:A35. 设有以下程序段int y;y=rand() % 30+1;则变量 y 的取值范围是A) 1<y<30B)0≤y≤30C) 0<y≤30D)1<y≤30答案:C36. 以下程序段中,循环次数不超过 10 的是A)int i=10; do{ i=i+1;} while(i<0);B)int i=5; do{ i+=1;} while(i>0);C)int i=1; do{ i+=2;} while(i!=10);D)int i=6; do{ i-=2;} while(i!=1);答案:A37. 以下叙述正确的是A)计算机只接收由 0 和 1 代码组成的⼆进制指令或数据B)计算机只接收由 0 和 1 代码组成的⼗进制指令或数据C)计算机可直接接收并运⾏ C 源程序D)计算机可直接接收并运⾏任意⾼级语⾔编写的源程序答案:A38. 简单程序设计步骤中不包括A)编码B)确定算法C)安装编译程序D)调试答案:C39. 关于 C 语⾔标识符,以下叙述错误的是A)标识符可全部由数字组成B)标识符可全部由下划线组成C)标识符可全部由⼩写字母组成D)标识符可全部由⼤写字母组成答案:A40. 若有 C 语⾔表达式 2+34+7/3,则以下选项中关于执⾏顺序的叙述,正确的是A)先执⾏ 34 得 12,再执⾏ 2+12 得 14,再执⾏ 7/3 得 2,最后执⾏ 14+2 得 16B)先执⾏ 34 得 12,再执⾏ 7/3 得 2.5,最后执⾏ 2+12+2.5 得16.5C)先执⾏ 7/3 得 2,再执⾏ 34 得 12,再执⾏ 12+2 得 14,最后执⾏ 2+14 得 16D)先执⾏ 2+3 得 5,再执⾏ 5*4 得 20,再执⾏ 20+7 得 27,最后执⾏ 27/3 得 9答案:A41. 若想给已定义为 int 型的变量 a,b,c,d 赋值为 1,以下选项中错误的语句是A)a=b, b=c, c=d, d=1;B)a=b=c=d=1;C)a=1, b=a, c=b, d=c;D)d=1, c=d, b=c, a=b;答案:A42. 若有定义:char c; int d; 程序运⾏时输⼊:c=1,d=2<回车>,能把字符 1 输⼊给变量 c、整数 2 输⼊给变量 d 的输⼊语句是A)scanf(“c=%c,d=%d”, &c,&d);B)scanf(“c=%c d=%d”, &c,&d);C)scanf(“c=%d,d=%d”, &c,&d);D)scanf(“c=%d d=%d”, &c,&d);答案:A43. 以下叙述正确的是A) C 编译程序把⽂件后缀为.c 的源程序⽂件编译成⽂件后缀为.exe 的可执⾏⽂件B)C 编译程序把⽂件后缀为.c 的源程序⽂件编译成⽂件后缀为.obj 的⼆进制⽂件C)C 编译程序把⽂件后缀为.obj 的⼆进制⽂件编译成⽂件后缀为.exe 的可执⾏⽂件D)链接程序把⽂件后缀为.c 的源程序⽂件链接成⽂件后缀为.exe的可执⾏⽂件答案:B44. 算法应当具有的特性不包括A) 确定性B)有穷性C)美观性D)可⾏性答案:C45. 以下不属于 C 语⾔整数的是A)12fB)25uC)-32D)+20L答案:A46. 有 C 语⾔表达式 23+4+15%3 ,关于其执⾏顺序,以下叙述正确的是A)先执⾏ 23 得 6,再执⾏ 6+4 得 10,再执⾏ 15%3 得 0,最后执⾏ 10+0 得 10B)先执⾏ 23 得 6,再执⾏ 15%3 得 5,最后执⾏ 6+4+5 得 15C)先执⾏ 15%3 得 0,再执⾏ 23 得 6,最后执⾏ 6+4+0 得 10D)先执⾏ 15%3 得 3,再执⾏ 4+3 得 7,再执⾏ 2*3 得 6,最后执⾏ 6+7 得 13答案:A47. 若想给已定义为 int 型的变量 a、b、c、d 赋整数 1,以下选项中错误的语句是A)d=c, c=b, b=a, a=1;B)d=c=b=a=1;C)d=(b=c=(a=1));D)d=1, c=d, b=c, a=b;答案:A48. 若有定义:int a; float b; double c; ,程序运⾏时输⼊:1,2,3<回车>,能把 1 输⼊给变量 a、2 输⼊给变量 b、3 输⼊给变量 c 的输⼊语句是A) scanf("%d,%f,%f", &a,&b,&c);B)scanf("%d%f%lf", &a,&b,&c);C)scanf("%d,%lf,%lf", &a,&b,&c);D) scanf("%d,%f,%lf", &a,&b,&c);答案:D49. 以下叙述正确的是A)循环结构、选择结构、顺序结构都是结构化程序的基本结构B)计算机可以直接执⾏ C 语⾔程序,不需要做任何转换C)过于复杂的算法不能使⽤ N-S 流程图描述D)只有不超过 20 步操作步骤的算法才是简单算法答案:A答案:A50. 以下叙述正确的是A) C 语⾔程序并不是必须要定义 main()函数B)只使⽤三种基本结构即可解决任何复杂问题C)只要程序包含了任意⼀种基本结构,就肯定是结构化程序D)程序中的语法错误只有在运⾏时才能显现答案:B51. 以下选项中,合法的 C 语⾔常量是A) 2MBB)‘CPP’C)"\1.0D) 21.84答案:D52. 以下选项中,合法的 C 语⾔实数是A).1e0B)E1C)0.10ED)2.1e0.2答案:A53. 设 a,b,c 是整型变量,且已正确赋初值,以下选项中错误的赋值语句是A)a = 2 = (b = 9) = 1;B)a = (b = 3) * c;C)a = b = c / 10;D)a = 1 % (b = c = 2);答案:A54. 有如下程序#include <stdio.h>main( ) {int x = 072;printf(“X=%d\n”, x+1);}程序运⾏后的输出结果是A) X=73B) X=59C)X=115D)X=72答案:B55. 下⾯叙述正确的是A)C 语⾔程序的语句经过编译和链接转换成⼆进制机器指令后才能执⾏B)任何算法需要包含三种基本结构中的两种以上C)复杂算法是不能⽤三种基本结构来表达的D)只要是简单算法,它的操作步骤都不会超过 20 步答案:A56. 下⾯叙述正确的是A)任何复杂任务都可以分解成简单⼦任务B)C 语⾔程序的所有函数只能处于同⼀个源⽂件中C)包含全部三种基本结构的程序才是结构化程序D)C 语⾔程序可以定义多个不同内容的 main 函数答案:A57. 以下选项中,合法的数值型常量是A) ‘X’B) 3.2B) 3.2C)099D)0xEH答案:B58. 以下选项中,合法的实数是A) 1.9E1.4B)E1.1C)2.10ED) 1.5E2答案:D59. 若已有定义语句:int a, b, c;,且变量已正确赋初值,则以下选项中正确的赋值语句是A)a = (b = c) + 8;B)(a = b) = c = 9;C)a = (b == c) = ‘A’;D)a + b = c + 1;答案:A60. 有以下程序#include <stdio.h>main( ) {int x = 0x13;printf(“INT:%d\n”, x+1);}程序运⾏后的输出结果是A) INT:12B)INT:13C) INT:20D)INT:14答案:C61. 关于程序设计基本概念,以下叙述错误的是A)计算机可以直接执⾏由任意⾼级语⾔编写的程序B)⾼级语⾔都有与之对应的编译程序或解释程序C)⽤任何⼀种计算机⾼级语⾔都可以把算法转换为程序D)结构化算法可以解决任何复杂的问题答案:A62. 关于程序中的注释,以下叙述正确的是A) 注释中间可以嵌套另⼀个注释B)注释必须置于所说明的语句前或语句后C)注释的内容必须放在/* 和 */之间D)注释内容错误会导致编译出错答案:C63. 以下不能⽤于实型数据的运算符是A) +B)/C)*D) %答案:D64. 以下选项中,与 n=i++ 完全等价的表达式是A)n=i,i=i+1B)n+=i+1C)i=i+1,n=iD)n=++i答案:A65. 以下表达式的值与 x ⽆关、其值恒为真的是A)0 < x < 5B)x>10 && x<5C)x>10 || x<5D)x<10 && x>5答案:A66. 设变量 m 为 float 类型,变量 n 为 int 类型,则以下能实现将m 中的数值保留⼩数点后两位,第三位进⾏四舍五⼊运算的表达式是A)n=m100+0.5, m=n/100.0B)m=(m100+0.5)/100.0C)n=m/100+0.5, m=n100.0D)m=m100+0.5/100.0答案:A67. 以下叙述正确的是A) 函数体内的定义语句和可执⾏语句允许任意交替出现B)main()函数若不带参数,其后⾯的⼀对圆括号可省略C) C 程序总是以 main()作为程序执⾏的起始⾏D)C 语⾔中的语句之间必须⽤分号作为分隔符答案:C68. C 语⾔中的基本数据类型包括A)整型、实型、字符型B)整型、字符型、数组C)整型、实型、逻辑型D)整型、实型、结构体答案:A69. 以下不正确的定义语句是A) long b=0L;B) unsigned int a= -100u;C)short c2=0123;D)int d=0x0;答案:B70. 以下⾮法的字符常量是A)’\n’B)’\101’C)’\x21’D)’\0’答案:A71. 设有定义:int x=7,y=12;,则以下表达式值为 3 的是A)(y%=x)-(x%=5)B)y%=(x%=5)C)y%=x-x%5D)y%=(x-x%5)答案:A72. 设有定义:int n = 1234;double x = 3.1415;则语句: printf("%3d,%1.3f\n", n, x); 的输出结果是A) 1234,3.141B)123,3.142C) 1234,3.142D)123,3.141答案:C73. 以下叙述错误的是A)任何能通过编译和运⾏的算法都⼀定能得到所期望的结果B)⼀个算法所包含的操作步骤应该是有限的C)算法中每⼀条指令必须有确切的含义D)算法可以⽤各种描述⽅法来进⾏描述答案:A74. 关于程序模块化,以下叙述错误的是A) 程序模块化可以提⾼调试程序的效率B)程序模块化可以提⾼程序编制的效率C)程序模块化可以提⾼程序代码复⽤率D)程序模块化可以提⾼程序运⾏的效率答案:D75. 以下是正确 C 语⾔标识符的是A)_3B)#3C)&3D)-3答案:A76. 以下是正确 C 语⾔实型常量的是A)1e-1B)e-1C)-1eD).e-1答案:A77. 若想定义 int 型变量 a,b,c,d 并都赋值为 1,以下写法中错误的是A)int a=b=c=d=1;B)int a=1, b=1, c=1, d=1;C)int a,b,c,d; a=b=c=d=1;D)int a,b,c,d=1; a=b=c=d;答案:A78. 若有定义:char c; double d; 程序运⾏时输⼊:1 2<回车>,能把字符 1 输⼊给变量 c、数值 2 输⼊给变量 d 的输⼊语句是A)scanf("%c%lf", &c,&d);B)scanf("%d%lf", &c,&d);C)scanf("%c%f", &c,&d);D)scanf("%d%f", &c,&d);答案:A79. 以下叙述正确的是A)所有程序⾏都必须⽤分号结束B)C 语⾔程序由 C 语句组成,可以省略 main 函数C)分号是 C 语句之间的分隔符D) 在 C 语⾔中分号是语句的组成部分答案:D80. 以下叙述正确的是A) C 程序由函数组成,可以不包含 main 函数B)每个 C 程序⽂件中的 main 函数都应当放在最前⾯C)每个 C 程序⽂件都应当包含⼀个 main 函数D) 每个 C 程序都只能有⼀个 main 函数答案:D81. 若有定义:int a,b,c; 以下程序段的输出结果是a=11; b=3; c=0;printf("%d\n",c=(a/b,a%b));A)2B)0C)3D)1答案:A82. 有以下程序#include <stdio.h>main(){ int a=2,b=3,c=4;a*=16 +(b++) - (++c);printf("%d \n",a );}程序运⾏后的输出结果是A)30B)28C)15D)14答案:B83. 若有定义:double a, b, c; 能正确给 a,b,c 输⼊数据的语句是A)scanf(" %lf %lf %lf",&a, &b, &c );B)scanf(" %f %f %f",&a, &b, &c );C)scanf(" %lf %lf %lf",a, b, c );D)scanf(" %lf %lf %lf"; *a, *b, *c );答案:A84. 输出语句:printf("%d\n",11+011);的输出结果是A)22B)20C)022D)021答案:B85. 以下叙述正确的是A)结构化程序的三种基本结构是循环结构、选择结构、顺序结构B)C 语⾔程序不编译也能直接运⾏C)有些算法不能⽤三种基本结构来表达D)如果 C 语⾔程序实现的算法很简单,则计算机不进⾏任何代码转换就能执⾏程序答案:A86. 以下叙述正确的是A)通过分解成简单⼦任务,可以完成任何复杂任务B)每个结构化程序都要包含全部三种基本结构C)C 语⾔程序的所有⾃定义函数只能写在同⼀个源⽂件中D)C 语⾔程序允许使⽤多个 main 函数,只要它们的函数体各不相同即可答案:A87. 以下选项中合法的 C 语⾔常量是A) 2EKB)‘C-STR’C)"\1.0D) 2014.1答案:D88. 以下选项中,合法的 C 语⾔实数是A).4e0B)4.3e0.2C)E4.8D)0.29E答案:A89. 设 a,b,c 已定义为整型变量,以下选项中不正确的赋值语句是A)a = 3 = (b = 2) = 1;B)a = (b = 0) * c + 1;C)a = b = c / 1.0;D)a = 10 % (b = c = 2.0);答案:A90. 有以下程序#include <stdio.h>main( ) { int x = 0x9;printf("%c\n", ‘A’+x);}程序运⾏后的输出结果是A)IB)JC)KD)H答案:B91. 以下叙述中错误的是A)计算机可以直接识别由⼗六进制代码构成的程序B)可以连续执⾏的指令的集合称为“程序”C)“程序”是⼈与计算机“对话”的语⾔D)计算机可以直接识别由 0 和 1 组成的机器语⾔代码答案:A92. 在传统流程图中,⽤来表⽰输⼊输出的图形是A) 椭圆形B)长⽅形C)菱形D)平⾏四边形答案:D93. 以下说法正确的是A)赋值语句是⼀种可执⾏语句,应当出现在函数的可执⾏部分B)赋值语句可以出现在函数中的任意位置C)赋值语句可以出现在函数外单独执⾏D)赋值语句可以出现在源程序中的任意位置答案:A94. 若有定义: double x;,则表达式:x=0,x+10,x++ 的值是A)1.0B)10.0C)11.0D)0.0答案:D95. 若变量已正确定义并赋初值,以下合法的赋值语句是A)k=(m==n);B)k=int(m+n);C)k=-m-nD)k=m*n=1;答案:A96. 设有定义: double x=5.16894;,则语句 printf("%lf\n ",(int)(x*1000+0.5)/1000.);的输出结果是句 printf("%lf\n ",(int)(x*1000+0.5)/1000.);的输出结果是A)5.16900B)5.16800C)0.00000D)输出格式说明符与输出项不匹配,产⽣错误信息答案:A97. 以下选项中不是 C 语⾔数据类型的是A) charB)floatC) stringD)int答案:C98. 以下选项中不能在 C 语⾔程序中⽤作⽤户标识符的是A) _3_14B)scanfC)FloatD) auto答案:D99. 以下选项中可⽤作 C 程序合法整数的是A)0x77B)1 2 (数字间有⼀个空格)C)xffD)018答案:A100. 以下选项中关于 C 语⾔算术表达式的叙述中错误的是A)C 语⾔仅提供了+、-、*、/ 这 4 个基本算术运算符B)C 语⾔采⽤的是⼈们熟悉的四则运算规则,即先乘除后加减C)算术表达式中,运算符两侧类型不同时,将进⾏类型之间的转换D)可以通过使⽤⼩括号来改变算术表达式中某些算术运算符的计算优先级答案:A。
C语言编程题及答案(精心整理)
)(*)(*)(*c s b s a s s ---C 语言编程题1.(*)求分数序列:1/2,2/3,3/5,5/8,8/13,13/21...... 前20项的和。
main(){float i=1,j=2,t=0,s,n,m;for(n=1;n<=20;n++)s=i/j,m=i,i=j,j=m+j,t=t+s;printf("t=%f",t);}2.(*)从键盘输入一个字符串,再将其逆序输出。
(如:输入abcde ,输出edcba ) main(){int i;char c[10];scanf("%s",c);for(i=9;i>=0;i--)printf("%c",c[i]);}3.(*)已知abc+cba=1333,其中a 、b 、c 均为一位数,例如:617+716=1333, 518+815=1333, 试编程求出符合这一规律的a 、b 、c ,并输出结果。
main(){int a,b,c,x,y;for(a=1;a<=9;a++)for(b=0;b<=9;b++)for(c=1;c<=9;c++){ x=100*a+10*b+c;y=100*c+10*b+a;if(x+y==1333)printf("x=%d,y=%d",x,y);}}4.(*)利用海伦公式求三角形面积,三边长a,b,c 由键盘输入。
若输入的三边长不能构成 三角形,输出相应提示信息。
海伦公式如下:其中s=(a+b+c)/2三角形面积= #include"math.h"main(){ float a,b,c,s,area;scanf("%f,%f,%f",&a,&b,&c);s=(a+b+c)/2;area=sqrt(s*(s-a)*(s-b)*(s-c));if(a+b>c&&a+c>b&&b+c>a)printf("area=%f",area);else.1 .printf("no");}5.(*)编程求出1!+2!+3!+…+8!+9!+10!的值并输出。
100个经典C语言编程例子(答案另附)
100个经典C语言编程例子(答案另附)1:计算 A+B 的问题时间限制:1000MS 内存限制:10000K总提交数:1347 正确数:655问题描述输入两个整数 a 和 b ,计算 a+b 的结果并输出。
输入两个整数输出一个整数输入样例1 2输出样例32:Hello World!时间限制:1000MS 内存限制:65536K总提交数:848 正确数:693问题描述编写第一个C语言程序。
在屏幕上输出:Hello World!输入程序没有输入输出Hello World!输入样例输出样例Hello World!提示1、输出的内容要与题目的要求完全一样,不能多字符也不能少字符。
3:两个整数的值互换时间限制:1000MS 内存限制:65536K总提交数:1235 正确数:530问题描述输入两个整数a,b ,将 a 和 b 的值互换,并输出。
例如:输入: 2 5输出: 5 2输入两个整数输出两个整数输入样例2 5输出样例5 2提示注意输入和输出的格式,两个数据之间用一个空格隔开。
问题来源4:计算三门课程总分和平均分时间限制:1000MS 内存限制:65536K总提交数:1190 正确数:482问题描述输入三门课程的成绩,输出总分和平均分。
要求:(1)输入三个数,用空格隔开。
输入的数可以是小数。
(2)输出两个数,用空格隔开。
输出的数保留两位小数。
例如:输入: 75 80 90输出: 245.00 81.67 输入输入三个数,用空格隔开。
输入的数可以是小数。
输出输出两个数,用空格隔开。
输出的数保留两位小数。
输入样例75 80 90输出样例245.00 81.67问题来源5:鸡兔同笼问题时间限制:1000MS 内存限制:65536K总提交数:872 正确数:443问题描述这个问题,是我国古代著名趣题之一。
大约在1500年前,《孙子算经》中就记载了这个有趣的问题。
书中是这样叙述的:“今有鸡兔同笼,上有三十五头,下有九十四足,问鸡兔各几何?这四句话的意思是:有若干只鸡兔同在一个笼子里,从上面数,有35个头;从下面数,有94只脚。
C语言的简答题含解答共100道题
C语言的简答题含解答共100道题1. 什么是C语言?●C语言是一种通用的编程语言,由Dennis Ritchie于1972年开发。
它被广泛用于系统编程、嵌入式开发和应用程序开发。
2. C语言的注释如何表示?●注释可以使用`/*`和`*/`包围起来,或者使用`//`开始的单行注释。
3. 如何声明一个整数变量?●使用语法:`int variable_name;`,例如:`int age;`4. 如何将值赋给一个变量?●使用赋值运算符`=`,例如:`age = 25;`5. 什么是标识符?●标识符是用来命名变量、函数和其他用户定义的实体的名称,它们必须遵循一定的命名规则。
6. C语言的基本数据类型有哪些?●整数类型(int、short、long)、浮点数类型(float、double、long double)、字符类型(char)等。
7. 如何定义常量?●使用`#define`预处理指令或`const`关键字,例如:`#define PI 3.141592` 或`const int max_age = 100;`8. 什么是C语言中的运算符?●运算符用于执行各种操作,如加法、减法、乘法、除法等。
常见运算符包括`+`、`-`、`*`、`/`、`%`等。
9. 如何在C语言中获取用户输入?●使用`scanf`函数来接收用户输入,例如:`scanf("%d", &number);`10. 如何在C语言中打印输出?●使用`printf`函数来输出内容,例如:`printf("Hello, World!");`11. 什么是条件语句?C语言中最常见的条件语句是什么?●条件语句用于根据条件执行不同的代码块。
C语言中最常见的条件语句是`if`语句。
12. `if`语句的基本结构是什么?●`if`语句的基本结构如下:```cif (condition) {// 代码块}```13. 如何使用`else`扩展`if`语句以处理多个条件?●使用`else if`可以在一个`if`语句中处理多个条件,例如:```cif (condition1) {// 代码块1} else if (condition2) {// 代码块2} else {// 默认代码块}```14. 什么是循环?C语言中有哪些类型的循环?●循环是一种重复执行一段代码的结构。
C语言基础练习100题(含标准答案)
C语⾔基础练习100题(含标准答案)C语⾔基础练习100题(含答案)雷柳青编排1、下⾯程序的输出是________#includevoid main(){ int k=11。
printf("k=%d,k=%o,k=%x\n",k,k,k)。
}A) k=11,k=12,k=11 B) k=11,k=13,k=13 C) k=11,k=013,k=0xb D) k=11,k=13,k=b2、在下列选项中,不正确的赋值语句是________.A) ++t。
B) n1=(n2=(n3=0))。
C) k=i=j。
D) a=b+c=1。
3、下⾯合法的C语⾔字符常量是__________.A) '\t' B) "A" C) 65 D) A4、字符(char)型数据在微机内存中的存储形式是____.A) 反码B) 补码C) EBCDIC码D) ASCII码5、设int a=12,则执⾏完语句a+=a-=a*a后,a的值是________A) 552 B) 264 C) 144 D) -2646、执⾏下⾯程序中的输出语句后,输出结果是______.#includevoid main(){int a。
printf("%d\n",(a=3*5,a*4,a+5))。
}A) 65 B) 20 C) 15 D) 107、下⾯程序的输出是__________.#includevoid main(){int x=023。
printf("%d\n",--x)。
}A) 17 B) 18 C) 23 D) 248、下⾯程序的输出是___________.#include{char ch1,ch2。
ch2='A'+'6'-'3'。
printf("%d,%c\n",ch1,ch2)。
C语言200道练习题及答案
一维数组
题目1
题目2
题目3
题目4
求一维数组中的最大值 和最小值。
将一维数组中的元素逆 序存放。
查找一维数组中指定的 元素,并返回其下标。
求一维数组中所有元素 的和。
二维数组
题目5
题目6
求二维数组中所有元素的最大值和最小值 。
将二维数组转置,即行列互换。
题目7
题目8
查找二维数组中指定的元素,并返回其位 置。
C语言200道练习题 及答案
汇报人:XX
目录
• 基础知识练习题 • 数组与字符串练习题 • 函数与模块化练习题 • 指针与内存管理练习题 • 数据结构与算法练习题 • 综合应用练习题
01
基础知识练习题
变量与数据类型
声明整型变量并赋值
int a = 10;
声明字符型变量并赋值
char c = 'A';
代码优化
通过减少不必要的计算、消 除冗余代码等方式对代码进 行优化。
并行计算与多线程
了解并行计算和多线程的基 本概念,探索在程序中应用 并行计算和多线程技术提高 性能的可能性。
THANKS
感谢观看
掌握如何使用malloc()、calloc() 等函数在堆区动态分配内存空间
。
动态内存释放函数
了解如何使用free()函数释放之前 分配的内存空间,以避免内存泄漏 。
内存分配失败处理
熟悉在动态内存分配过程中,如何 处理分配失败的情况,如检查返回 值是否为NULL等。
05
数据结构与算法练习题
结构体与联合体
01
掌握如何定义指向函数的指针变量,以及如何通过函数指针调
用函数。
c语言程序基础练习题500道(附答案)
1.下列四组选项中,均不是C语言关健字的选项是( A )。
A) define B) gect C) include D) whileIF char scanf gotype printf case pow2.下面四个选项中,均是合法整型常量的选项是( A )。
A)160 B)-0xcdf C) -01 D)-0x48a-0xffff 01a 986,012 2e5011 0xe 0668 0x3.下面四个选项中,均是不合法的转义符的选项是( B )。
A) '\"' B) '\1011' C) '\011' D) '\abc''\\' '\' '\f' '\101''xf' '\A' '\}' 'x1f'4.下面不正确的字符串常量是( A )。
A)'abc' B)"12'12" C)"0" D)" "5.以下选项中不合法的用户标识符是( A )。
A)abc.c B)file C)Main D)PRINT6.C语言提供的合法关键字是( D )。
A) swithB) cherC) CaseD)default7.下列标识符组中,合法的用户标识符为 AA)_0123与ssipedB)del-word与signedC)list与*jerD) keep%与wind8.在C语言中,逻辑值"真"的表示是用( C )。
A) true B) 整型值0 C)非另整型值D) T9若有以下定义char s='\092';则该语句( b )A)使s的值包含一个字符B)定义不合法,s的值不确定C)使s的值包含4个字符D)使s的值包含3个字符10设C语言中,int类型数据占2个字节,则float类型数据占(D )个字节。
C语言经典编程实例100题答案
C语言经典编程实例100题答案1. 打印Hello World!#include <stdio.h>int main() {printf("Hello World!");return 0;}2. 计算两个数的和#include <stdio.h>int main() {int num1, num2, sum;printf("请输入两个数:");scanf("%d %d", &num1, &num2);sum = num1 + num2;printf("两个数的和为:%d", sum);return 0;}3. 输入一个数,判断是否为正数、负数或零#include <stdio.h>int main() {int num;printf("请输入一个数:"); scanf("%d", &num);if (num > 0) {printf("正数");}else if (num < 0) {printf("负数");}else {printf("零");}return 0;}4. 判断一个数是否为素数#include <stdio.h>int main() {int num, i, flag = 0;printf("请输入一个数:");scanf("%d", &num);for (i = 2; i <= num / 2; ++i) { if (num % i == 0) {flag = 1;break;}}if (flag == 0)printf("%d是素数", num); elseprintf("%d不是素数", num); return 0;}5. 求斐波那契数列的第n项#include <stdio.h>int fibonacci(int n) {if (n <= 1)return n;return fibonacci(n - 1) + fibonacci(n - 2);}int main() {int n;printf("请输入要求第几项:");scanf("%d", &n);printf("第%d项的值为:%d", n, fibonacci(n));return 0;}6. 判断一个数是否为回文数#include <stdio.h>int main() {int num, reversedNum = 0, remainder, originalNum; printf("请输入一个数:");scanf("%d", &num);originalNum = num;while (num != 0) {remainder = num % 10;reversedNum = reversedNum * 10 + remainder; num /= 10;}if (originalNum == reversedNum)printf("%d是回文数", originalNum);elseprintf("%d不是回文数", originalNum);return 0;}7. 打印九九乘法表#include <stdio.h>int main() {int i, j;for (i = 1; i <= 9; ++i) {for (j = 1; j <= i; ++j) {printf("%d * %d = %d\t", j, i, j * i);}printf("\n");}return 0;}8. 输入一个数,判断是否为偶数#include <stdio.h>int main() {int num;printf("请输入一个数:");scanf("%d", &num);if (num % 2 == 0)printf("偶数");elseprintf("奇数");return 0;}9. 冒泡排序#include <stdio.h>void bubbleSort(int array[], int size) { int i, j, temp;for (i = 0; i < size - 1; ++i) {for (j = 0; j < size - i - 1; ++j) {if (array[j] > array[j + 1]) {temp = array[j];array[j] = array[j + 1];array[j + 1] = temp;}}}}int main() {int array[] = {5, 2, 8, 12, 1};int size = sizeof(array) / sizeof(array[0]); bubbleSort(array, size);printf("排序后的数组:");for (int i = 0; i < size; ++i) {printf("%d ", array[i]);}return 0;}10. 判断一个数是否为完数#include <stdio.h>int main() {int num, i, sum = 0;printf("请输入一个数:");scanf("%d", &num);for (i = 1; i < num; ++i) {if (num % i == 0) {sum += i;}}if (sum == num)printf("%d是完数", num); elseprintf("%d不是完数", num); return 0;}......(一共100题答案)这些是C语言经典编程实例的部分答案,希望对您有所帮助。
C语言经典编程实例100题 答案
C语言经典编程实例100题+答案C语言程序实例100个(一)【程序1】题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?1.程序分析:可填在百位、十位、个位的数字都是1、2、3、4。
组成所有的排列后再去掉不满足条件的排列。
2.程序源代码:main(){int i,j,k;printf("\n");for(i=1;i<5;i++) /*以下为三重循环*/ for(j=1;j<5;j++)for (k=1;k<5;k++){if (i!=k&&i!=j&&j!=k) /*确保i、j、k三位互不相同*/ printf("%d,%d,%d\n",i,j,k);}}==============================================================【程序2】题目:企业发放的奖金根据利润提成。
利润(I)低于或等于10万元时,奖金可提10%;利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可可提成7.5%;20万到40万之间时,高于20万元的部分,可提成5%;40万到60万之间时高于40万元的部分,可提成3%;60万到100万之间时,高于60万元的部分,可提成1.5%,高于100万元时,超过100万元的部分按1%提成,从键盘输入当月利润I,求应发放奖金总数?1.程序分析:请利用数轴来分界,定位。
注意定义时需把奖金定义成长整型。
2.程序源代码:main(){long int i;int bonus1,bonus2,bonus4,bonus6,bonus10,bonus;scanf("%ld",&i);bonus1=100000*0.1;bonus2=bonus1+100000*0.75;bonus4=bonus2+200000*0.5;bonus6=bonus4+200000*0.3;bonus10=bonus6+400000*0.15;if(i<=100000)bonus=i*0.1;else if(i<=200000)bonus=bonus1+(i-100000)*0.075;else if(i<=400000)bonus=bonus2+(i-200000)*0.05;else if(i<=600000)bonus=bonus4+(i-400000)*0.03;else if(i<=1000000)bonus=bonus6+(i-600000)*0.015;elsebonus=bonus10+(i-1000000)*0.01;printf("bonus=%d",bonus);}==============================================================【程序3】题目:一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?1.程序分析:在10万以/*x为加上100后开方后的结果*/ y=sqrt(i+268); /*y为再加上168后开方后的结果*/ if(x*x==i+100&&y*y==i+268)/*如果一个数的平方根的平方等于该数,这说明此数是完全平方数*/ printf("\n%ld\n",i);}}==============================================================【程序4】题目:输入某年某月某日,判断这一天是这一年的第几天?1.程序分析:以3月5日为例,应该先把前两个月的加起来,然后再加上5天即本年的第几天,特殊情况,闰年且输入月份大于3时需考虑多加一天。
专升本C语言100题及答案
C语言精编100题一、单选题1.由C语言编写的代码程序( )A. 可直接执行B. 是一个源程序C. 经过编译即可执行D. 经过编译解释才能执行2.按照C语言规定的用户标识符命名规则,不能出现在标识符中的是( )A. 大写字母B. 中划线C. 数字字符D. 下划线3.下列选项中,不能用作标识符的是( )A. _1234_B. _1_2C. int_2_D. 2_int_4.以下选项中合法的用户标识符是( )A. longB. _2TestC. 3DmaxD. A.dat5.以下不能定义为用户标识符的是( )A. MainB. _0C. _intD. sizeof6.下列定义变量的语句错误的是( )A. int _int;B. double int_;C. char For;D. float US$;7.在C语言中,合法的实型常数是( )A. 5E2.0B. E-3C. 2E0D. 1.3E8.在C语言中,合法的实型常数是( )A. 1.2E0.5B. 3.14159EC. 5E-3D. E159.以下选项中,不能作为合法常量的是( )A. 1.234e04B. 1.234e0.4C. 1.234e+4D. 1.234e010.以下不合法的数值常量是( )A. 011B. le1C. 8.0E0.5D. 0xabcd11.在C语言中,非法的字符常量是( )A.‘\t’B.‘\17’C. "\n"D.‘\xaa’12.以下不合法的字符常量是( )A.‘\018’B.‘\"’C.‘\\’D.‘\xcc’13.下列运算符中优先级最高的运算符是( )( )A. <=B. =C. %D. &&A. ==B. /C. =D. >=14.以下程序的输出结果是( )main(){ int a=3,b=4;printf("%d\n",a<=b);}A. 3B. 4C. 1D. 015.在C语言中,以下非法的表达式是( )A. 0<=x<=100B. i=j==0C. (char)(65+3)D. x+1=x+116.在C语言中,以下非法的赋值语句是( )A. j++;B. ++(i+1);C. x=j>0;D. k=i==j;17.表达式3.6-5/2+1.2+5%2的值是( )A. 4.3B. 4.8C. 3.3D. 3.818.设有语句:int a=3;则执行了语句a+=a-=a*a;变量a的值是( )A. 3B. 0C. 9D. -1219.设有语句:int x=10;则执行了语句x+=x-=x-x;变量x的值是( )A. 10B. 20C. 40D. 3020.以下程序的输出结果是( )( )( )( )( )⑴ main(){ int i=10,j=1;printf("%d,%d\n",i--,++j);}A. 9,2B. 10,2C. 9,1D. 10,1⑵ main(){ int a=12,b=12;printf("%d %d\n" ,--a,++b);}A. 10 10B. 12 12C. 11 10D. 11 13⑶ main(){ int x=023;printf("%d\n",--x);}A. 17B. 18C. 23D. 24⑷ main(){ int x=10,y=10;printf("%d %d\n",x--,--y);}A. 10 10B. 9 9C. 9 10D. 10 9⑸ main(){ int i=010,j=10;printf("%d,%d\n",++i,j--);}A. 11,10B. 9,10C. 010,9D. 10,921.以下程序的输出结果是( )main(){ int x=100,y=200;printf("%d\n",(x,y)); }A. 200B. 100C. 100 200 D)200 10022.以下程序的输出结果是( )main(){ int x=10,y=3,z;printf("%d\n",z=(x%y,x/y));}A. 1B. 0C. 4D. 323.int k=0;,以下选项的四个表达式中与其他三个表达式的值不相同的是( )A. k++B. k+=1C. ++kD. k+124.以下程序的输出结果是( )main(){ int x,y,z;x=y=1;z=x++,y++,++y;printf("%d,%d,%d\n",x,y,z); }A. 2,3,3B. 2,3,2C. 2,3,1D. 2,2,125.设x、y、t均为int型变量,则执行语句:x=y=3;t=++x||++y;后,y的值为( )A. 1B. 2C. 3D. 426.设int x=-1;执行表达式++x||++x||++x||++x,x的值是( )A. 0B. 1C. 2D. 427.以下程序的输出结果是(1) main(){ int k=11; printf("k=%d,k=%o,k=%x\n",k,k,k);}()A. k=11,k=12,k=11B. k=11,k=13,k=13C. k=11,k=013,k=0xbD. k=11,k=13,k=b(2) main(){ int k=17; printf("%d,%o,%x\n",k,k,k); }()A. 17,021,0x11B. 17,17,17C. 17,0x11,021D. 17,21,1128.运行时从键盘上输入9876543210<CR>(<CR>表示回车),则该程序的输出结果是()main(){ int a;float b,c;scanf("%2d%3f%4f\n",&a,&b,&c);printf("a=%d,b=%f,c=%f\n",a,b,c);}A. a=98,b=765,c=4321B. a=10,b=432,c=8765C. a=98,b=765.000000,c=4321.000000D. a=98,b=765.0,c=4321.029.设变量均已正确定义,若要通过scanf("%d%c%d%c",&a1,&c1,&a2,&c2);语句为变量a1和a2赋数值10和20,为变量c1和c2赋字符X和Y。
(完整版)C语言考试题库及答案
(完整版)C语言考试题库及答案一、选择题1. 以下哪个选项是C语言的合法标识符?A. intB. 2abcC. voidD. a+b答案:C2. 在C语言中,下列哪个选项是正确的数据类型?A. floatB. integerC. doubleD. All of the above答案:D3. 若变量定义如下:int a = 5;,则执行语句printf("%d", a++); 后,a的值是多少?A. 4B. 5C. 6D. 无法确定答案:C4. 以下哪个函数用于动态分配内存?A. malloc()B. alloc()C. new()D. calloc()答案:A5. 在C语言中,哪个运算符用于取模(取余)?A. %B. /C. &D. |答案:A以下是判断题部分:6. C语言中的数组名可以作为指向该数组首元素的指针使用。
()答案:正确7. 在C语言中,结构体变量可以作为函数的参数传递。
()答案:正确8. 在C语言中,静态存储类别的变量在程序运行期间始终占据内存空间。
()答案:正确二、填空题9. 在C语言中,定义一个整型变量需要使用关键字______。
答案:int10. 若变量定义如下:int a = 10;,则执行语句printf("%d", a--); 后,a的值是______。
答案:911. 在C语言中,用于动态分配内存的函数是______。
答案:malloc12. 在C语言中,用于释放动态分配的内存的函数是______。
答案:free13. 在C语言中,用于清空标准输入缓冲区的函数是______。
答案:getchar()三、编程题14. 编写一个C语言程序,实现以下功能:输入一个整数,输出它的阶乘。
答案:```c#include <stdio.h>int main() {int n, i;long factorial = 1;printf("Enter an integer: ");scanf("%d", &n);if (n < 0) {printf("Factorial of a negative number doesn't exist.\n");} else {for (i = 1; i <= n; i++) {factorial = i;}printf("Factorial of %d is %ld\n", n, factorial);}return 0;}```15. 编写一个C语言程序,实现以下功能:输入一个字符串,判断它是否是回文(正读和反读都一样的字符串)。
计算机二级c语言100套试题及答案
计算机二级c语言100套试题及答案1. 题目:编写一个C语言程序,计算并输出1到100之间所有偶数的和。
```c#include <stdio.h>int main() {int sum = 0;for (int i = 1; i <= 100; i++) {if (i % 2 == 0) {sum += i;}}printf("1到100之间所有偶数的和是:%d\n", sum);return 0;}```2. 题目:编写一个C语言程序,实现字符串的反转。
```c#include <stdio.h>#include <string.h>void reverseString(char *str) {int length = strlen(str);for (int i = 0; i < length / 2; i++) {char temp = str[i];str[i] = str[length - i - 1];str[length - i - 1] = temp;}}int main() {char str[] = "Hello, World!";reverseString(str);printf("反转后的字符串是:%s\n", str);return 0;}```3. 题目:编写一个C语言程序,计算并输出100以内最大的10个质数。
```c#include <stdio.h>#include <stdbool.h>bool isPrime(int num) {if (num <= 1) return false;for (int i = 2; i * i <= num; i++) {if (num % i == 0) {return false;}}return true;}int main() {int count = 0;int primes[10];for (int i = 2; i < 100 && count < 10; i++) { if (isPrime(i)) {primes[count++] = i;}}printf("100以内最大的10个质数是:");for (int i = 0; i < count; i++) {printf("%d ", primes[i]);}printf("\n");return 0;}```4. 题目:编写一个C语言程序,实现两个整数的交换。
c语言笔试题目100及最佳答案
c语言笔试题目100及最佳答案1. 以下哪个关键字用于定义一个结构体?A. structB. unionC. enumD. typedef答案:A2. 在C语言中,以下哪种数据类型是用于存储字符的?A. intB. charC. floatD. double答案:B3. 以下哪个选项不是C语言中的控制语句?A. ifB. whileC. forD. switch答案:D4. 在C语言中,以下哪个运算符用于执行算术运算?A. %B. &&C. ==D. +答案:D5. 如何定义一个具有10个元素的整型数组?A. int array[10];B. int array(10);C. int array[10] = {0};D. int array = 10;答案:A6. 在C语言中,以下哪个函数用于将字符串转换为浮点数?A. atoiB. atofC. itoaD. sprintf答案:B7. 在C语言中,以下哪个函数用于计算数组中元素的数量?A. sizeofB. lengthC. countD. size答案:A8. 在C语言中,以下哪个关键字用于定义一个函数?A. functionB. defC. voidD. int答案:C9. 在C语言中,以下哪个关键字用于声明一个全局变量?A. externB. staticC. globalD. local答案:A10. 在C语言中,以下哪个函数用于打开一个文件?A. fopenB. openC. readD. write答案:A11. 在C语言中,以下哪个函数用于关闭一个文件?A. fcloseB. closeC. endD. finish答案:A12. 在C语言中,以下哪个函数用于读取一个字符?A. getcharB. getcC. fgetcD. scanf答案:A13. 在C语言中,以下哪个函数用于写入一个字符?A. putcharB. putcC. fputcD. printf答案:A14. 在C语言中,以下哪个函数用于格式化输出?A. printfB. sprintfC. fprintfD. all of the above答案:D15. 在C语言中,以下哪个函数用于格式化输入?A. scanfB. sscanfC. fscanfD. all of the above答案:D16. 在C语言中,以下哪个函数用于计算字符串的长度?A. strlenB. lengthC. sizeD. count答案:A17. 在C语言中,以下哪个函数用于连接两个字符串?A. strcatB. strncatC. strcpyD. strncpy答案:A18. 在C语言中,以下哪个函数用于复制一个字符串?A. strcatB. strncatC. strcpyD. strncpy答案:C19. 在C语言中,以下哪个函数用于比较两个字符串?A. strcmpB. strcpyC. strcatD. strncpy答案:A20. 在C语言中,以下哪个函数用于查找字符串中子串的位置?A. strstrB. strchrC. strrchrD. strcspn答案:A。
C语言基础练习100题含标准答案
C语言基础练习100题含标准答案1. 编写一个C语言程序,要求输出"Hello, World!"#include <stdio.h>int main() {printf("Hello, World!\n");return 0;}2. 编写一个C语言程序,要求输出两个整数的和。
#include <stdio.h>int main() {int a, b, sum;printf("请输入两个整数:");scanf("%d %d", &a, &b);sum = a + b;printf("两个整数的和为:%d\n", sum);return 0;}3. 编写一个C语言程序,要求输出一个整数的平方。
#include <stdio.h>int main() {int num, square;printf("请输入一个整数:");scanf("%d", &num);square = num * num;printf("该整数的平方为:%d\n", square);return 0;}4. 编写一个C语言程序,要求输出1到10的所有整数。
#include <stdio.h>int main() {int i;for (i = 1; i <= 10; i++) {printf("%d ", i);}printf("\n");return 0;}5. 编写一个C语言程序,要求输出1到10的所有整数的和。
#include <stdio.h>int main() {int i, sum = 0;for (i = 1; i <= 10; i++) {sum += i;}printf("1到10的所有整数的和为:%d\n", sum);return 0;}6. 编写一个C语言程序,要求输入一个字符串并输出该字符串。
c语言编程试题及答案2021100
c语言编程试题及答案2021100一、单项选择题(每题2分,共20分)1. C语言中,用于定义一个结构体类型的关键字是()。
A. structB. unionC. enumD. typedef答案:A2. 下列哪个选项是C语言中的合法变量名?()A. 2variableB. variable2C. variable_2D. variable$2答案:C3. 在C语言中,用于表示逻辑“与”操作的运算符是()。
A. &&B. ||C. !D. ==答案:A4. 下列哪个选项不是C语言中的循环语句?()A. forB. whileC. do-whileD. switch答案:D5. 在C语言中,以下哪个函数用于将字符串复制到另一个字符串?()A. strcpyB. strncpyC. strcatD. strncat答案:A6. C语言中,用于定义一个枚举类型的关键字是()。
A. enumB. structC. unionD. typedef答案:A7. 下列哪个选项是C语言中的合法常量?()A. 0x1AB. 07C. 0.1ED. 0.1e答案:D8. 在C语言中,以下哪个函数用于将字符串连接到另一个字符串?()A. strcatB. strcpyC. strncpyD. strncat答案:A9. C语言中,用于定义一个联合体类型的关键字是()。
A. structB. unionC. enumD. typedef答案:B10. 下列哪个选项不是C语言中的运算符?()A. %B. &&C. ::D. ==答案:C二、填空题(每题2分,共20分)1. 在C语言中,字符'A'的ASCII码值是____65____。
2. C语言中,一个浮点数的表示形式为____0.1e-2____。
3. 在C语言中,用于声明一个函数的关键字是____void____。
4. C语言中,用于声明一个指针的语法是____int *p;____。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
101道C语言编程题参考答案1000. 计算A+B 的问题49%(655/1347) 53% 01C语言基础1.#include<stdio.h>int main(){int a,b;scanf("%d%d",&a,&b);printf("%d",a+b);return 0;}1001. Hello World! 82%(693/848) 18% 01C语言基础2.#include<stdio.h>int main(){printf("hello world!");return 0;}1004 两个整数的值互换43%(530/1235) 58% 01C语言基础3.#include <stdio.h>int main(){int a,b,t;scanf("%d%d",&a,&b); t=a;a=b;b=t;printf("%d %d",a,b);}1068 计算三门课程总分和平均分41%(482/1190) 60% 01C 语言基础4.#include <stdio.h>int main(){float a,b,c,zf,pj;scanf("%f%f%f",&a,&b,&c);zf=a+b+c;pj=zf/3;printf("%.2f %.2f",zf,pj);}1002 鸡兔同笼问题51%(443/872) 50% 02顺序结构5.#include "stdio.h"int main(){int a,b,x,y;scanf("%d%d",&a,&b);x=2*a-b/2;y=b/2-a;printf("%d %d",x,y);}1005 输出一个自然数的百位十位和个位上的各个数字63%(437/695) 37% 02顺序结构6.#include <stdio.h>main(){int n;scanf("%d",&n);printf("%d %d %d",(n/100)%10,(n/10)%10,n%10);}1006 输出字符(A-F)代表的十六进制数所对应的十进制值84%(387/462) 16% 02顺序结构7.#include "stdio.h"int main(){char n;scanf("%c",&n);switch(n){case 'A':printf("10");break;case 'B':printf("11");break;case 'C':printf("12");break;case 'D':printf("13");break;case 'E':printf("14");break;case 'F':printf("15");break;}}1008 求华氏温度所对应的摄氏温度73%(407/556) 27% 02顺序结构8.#include<stdio.h>main(){float c,f;scanf("%f",&f);c=(5.0/9.0)*(f-32);printf("%.2f",c);}1009 已知斜边和一直角边计算三角形的另一直角边76%(415/547) 24% 02顺序结构9.#include<stdio.h>#include<math.h>main(){float xb,zb1,zb2;scanf("%f%f",&xb,&zb1);zb2=sqrt(xb*xb-zb1*zb1);printf("%.2f",zb2);}1069 已知三边计算三角形的面积64%(374/585) 36% 02顺序结构10.#include<stdio.h>#include<math.h>main(){double a,b,c,p,s;scanf("%lf%lf%lf",&a,&b,&c);p=(a+b+c)/2;s=sqrt(p*(p-a)*(p-b)*(p-c));printf("%.6lf",s);}1070 输出小写字母的ASCII码及对应大写字母63%(378/602) 37% 02顺序结构11.#include<stdio.h>main(){char n;int x;scanf("%c",&n);x='a'-'A';printf("%d %c",n,n-x);}1071 保留两位小数72%(335/467) 29% 02顺序结构12.#include "stdio.h" int main(){double n;scanf("%lf",&n);n=(double)(((int)((n+0.005)*100.00))/100.0);printf("%lf",n);}1003 判断输入的一个字符是否是小写字母76%(373/492) 24% 03分支结构13.#include "stdio.h"#include "stdlib.h"#include "ctype.h"void main(){char ch1;ch1=getchar();if(islower(ch1)!=0){printf("%d",ch1);}elseprintf("ERROR");}1007 简单字符加密变换A->F 72%(322/450) 28% 03分支结构14.#include<stdio.h>main(){char a;scanf("%c",&a);a=(a-'A'+5)%26+'A';printf("%c\n",a);}1010 判断输入的一个字符是什么类型的字符58%(337/583) 43% 03分支结构15.#include "stdio.h"#include "Ctype.h"void main(){char n;scanf("%c",&n);if(isalpha(n)!=0)printf("capital");else if(isdigit(n)!=0)printf("number");elseprintf("other");}1011 判断一个学生的成绩等级70%(375/536) 30% 03分支结构16. #include "stdio.h"void main(){int n;scanf("%d",&n);if(n<60)printf("failed");else if(n>=60&&n<80)printf("middle");elseprintf("excellent");}1012 输出数字(1-7)对应的英文星期名称的简写63%(337/536) 38% 03分支结构17.#include "stdio.h"void main(){int n; /*Mon, Tues, Wed, Thu, Fri, Sat, Sun*/scanf("%d",&n);switch(n){case 1: printf("Mon");break;case 2: printf("Tues");break;case 3: printf("Wed");break;case 4: printf("Thu");break;case 5: printf("Fri");break;case 6: printf("Sat");break;case 7: printf("Sun");break;}}1013 给定三个边长的值判断是否能够构成三角形53%(347/650) 47% 03分支结构18.#include "stdio.h"#include<math.h>void main(){int a,b,c;scanf("%d%d%d",&a,&b,&c);if(abs(a-b)<c&&a+b>c)printf("YES");elseprintf("NO");}1014 将输入的三个数按从小到大的顺序输出67%(308/460) 33% 03分支结构19.#include<stdio.h>int main(){int x,y,z,t;scanf("%d%d%d",&x,&y,&z); if(x>y){t=x;x=y;y=t;}if(y>z){t=z;z=y;}if(x<t)y=t;else{y=x;x=t;}printf("%d %d %d",x,y,z);}1015 编程计算一个分段函数75%(319/428) 25% 03分支结构20.#include "stdio.h"void main(){float x;scanf("%f",&x);if (x<1.0)printf("%.2f",x);else if (x>=1.0&&x<10.0)printf("%.2f",2*x-1);elseprintf("%.2f",3*x-11);}1073 这个数能被3整除吗?68%(374/546) 32% 03分支结构21.#include "stdio.h"void main(){float x;scanf("%f",&x);if (x<1.0)printf("%.2f",x);else if (x>=1.0&&x<10.0)printf("%.2f",2*x-1);elseprintf("%.2f",3*x-11);}1074 这个月有多少天?54%(290/542) 46% 03分支结构22.#include <stdio.h>main(){int y,m;scanf("%d %d",&y,&m);switch(m){case 1:case 3:case 5:case 7:case 8:case 10:case 12:printf("31");break;case 4:case 6:case 9:case 11:printf("30");break;case 2:if(y%100 == 0 && y%400 ==0)printf("29");else if(y%100 != 0 &&y%4 ==0)printf("29");elseprintf("28");break;}}1075 模拟加减乘除计算器76%(274/361) 24% 03分支结构23.#include "stdio.h"void main(){float a,b;char p;scanf("%f%c%f",&a,&p,&b);switch(p){case '+': printf("%.6f",a+b);break;case '-': printf("%.6f",a-b);break;case '*': printf("%.6f",a*b);break;case '/': printf("%.6f",a/b);break;}}1076 输出三个数中的最大数和最小数77%(298/386) 23% 03分支结构24.#include<stdio.h>main(){int a,b,c;scanf("%d%d%d",&a,&b,&c);if(a>=b&&b>=c){printf("%d %d",a,c);}if(a>=c&&c>=b){printf("%d %d",a,b);}if(b>=a&&a>=c){printf("%d %d",b,c);}if(b>=c&&c>=a){printf("%d %d",b,a);}if(c>=a&&a>=b){printf("%d %d",c,b);}if(c>=b&&b>=a){printf("%d %d",c,a);}}1077 个人所得税问题(1)71%(275/389) 30% 03分支结构25.#include<stdio.h>main(){float s,r,t;scanf("%f",&s);if(s<=850)r=0;else if(s>850&&s<=1350)r=5;else if(s>1350&&s<=2850)r=10;else if(s>2850&&s<=5850)r=15;else if(s>5850)r=20;t=r*(s-850)/100;printf("%.2f\n",t);}1078 出租车收费问题66%(226/340) 33% 03分支结构26.#include<stdio.h>main(){int b;float a;double t,s;scanf("%f %d",&a,&b);t=a+b/5.0;if(t<=3)s=10;else if(t>=3&&t<=10)s=10+((double)t-3.0)*2;else if(t>10)s=10+14+(t-10)*3.0;printf("%.0f",s);}1079 学生综合测评问题49%(259/525) 51% 03分支结构27.#include<stdio.h>main(){int a,b;scanf("%d",&a);switch(a){case 0:b=0;break;case 1:b=1;break;case 2:case 3:b=2;break;case 4:case 5:case 6:case 7:b=a;break;case 8:b=8;break;case 9:b=8;break;case 10:b=8;break;default :b=10;break;}printf("%d",b);}1080 个人所得税问题(2)76%(247/327) 25% 03分支结构28.#include<stdio.h>main(){float s,r,t;scanf("%f",&s);if(s<=850){r=0;t=r*(s-850)/100;}else if(s>850&&s<=1350){r=5;t=r*(s-850)/100;}else if(s>1350&&s<=2850){r=10;t=r*(s-1350)/100+25;}else if(s>2850&&s<=5850){r=15;t=r*(s-2850)/100+175;}else if(s>5850){r=20;t=r*(s-5850)/100+625;}printf("%.2f\n",t);}1081 他(她)的实足年龄是...... 55%(243/438) 44% 03分支结构29.#include<stdio.h>main(){int y1,y2,m1,m2,d1,d2,s;scanf("%d %d %d\n%d %d %d\n",&y1,&m1,&d1,&y2,&m2, &d2);s=y2-y1;if(m1>m2)s--;else if(m1==m2&&d1>d2)s--;printf("%d",s);}1016 将一个小整数逆序输出70%(298/425) 30% 04循环结构30.#include "stdio.h"#include "math.h"void main(){int i,j,n,t,k;int s=0,ipow=1,jpow=1;scanf("%d",&n);for(i=1;;i++){ipow=ipow*10;if(n>=ipow);else break;}for(j=0;j<=i;j++){int fpow=1;t=(n/jpow)%10;jpow=jpow*10;for(k=1;k<=i-j-1;k++){fpow=fpow*10;}s=s+t*fpow;}printf("%d",s);}1017 计算一个数字的各位数字之和70%(328/466) 30% 04循环结构31.#include<stdio.h>main(){int n,m=0;scanf("%d",&n);while(n){m+=n%10;n/=10;}printf("%d",m);}1018 求两个数之间有多少个数的各位上数字之和为7 51%(209/412) 49% 04循环结构32.#include<stdio.h>main(){long int a,b,t,k,s,i;long sum=0;scanf("%d %d",&a,&b);if(a<b){for(i=a;i<=b;i++){k=i;s=0;do{t=k%10;s=s+t;k=k/10;}while(k>0);if(s==7)sum=sum+1;}}if(a>b){for(i=b;i<=a;i++){k=i;s=0;do{t=k%10;s=s+t;k=k/10;}while(k>0);if(s==7)sum=sum+1;}}printf("%ld",sum);}1019 判断一个整数是否是素数62%(273/440) 38% 04循环结构33.#include "stdio.h"#include<math.h>void main(){int i,s=0,n;scanf("%d",&n);for(i=1;i<=sqrt(n);i++){if(n%i==0)s++;}if(s==1)printf("YES");elseprintf("NO");}1020 输出n - m 之间的所有素数80%(226/282) 20% 04循环结构34.#include "stdio.h"void main() {int n,m;int i,j;scanf("%d %d",&n,&m);for(i=n;i<=m;i++){for(j=2;j<i;j++){if(i%j==0)break;}if(j>=i)printf("%d\n",i);}}1021 1到m之间有哪些数能被7或被11整除?82%(263/322) 18% 04循环结构35.#include "stdio.h"void main(){int i,n;scanf("%d",&n);for(i=1;i<=n;i++){if(i%7==0||i%11==0)printf("%d\n",i);}}1022 编程计算1+3+5+7+... 的值68%(321/472) 32% 04循环结构36.#include "stdio.h"int main(){int s=0,i,n;scanf("%d",&n);for(i=1;i<=n;++i)s=s+2*i-1;printf("%d",s);}1023 计算 1 !+2 !+3 !+… 前n 项的和66%(307/466) 34% 04循环结构37. #include "stdio.h"int fun(int);int main(){int i=1,n;long s=0;scanf("%d",&n);do{s=s+fun(i);i++;}while(i<=n);printf("%d",s);}int fun(n){if(n==1)return 1;elsereturn fun(n-1)*n;}1024 输出100-999之间的所有水仙花数70%(244/347) 30% 04循环结构38.#include "stdio.h"void main(){int a,b,c,i;int s;for(i=100;i<=999;i++){a=i/100;b=(i/10)%10;c=i%10;s=a*a*a+b*b*b+c*c*c;if(s==i)printf("%d\n",i);}return 0;}1025 求输出的数既是完全平方数又有两位相同的数76%(188/248) 24% 04循环结构39.#include "stdio.h"void main(){int i,j;int a,b,c;for(i=100;i<=999;i++)for(j=10;j<=33;j++){a=i/100;b=(i/10)%10;c=i%10;if(i==(j*j)&&(a==b||a==c||b==c))printf("%d\n",i);}}1026 判断一个数是否是完数85%(199/233) 14% 04循环结构40.#include "stdio.h"void main(){int i=1,s=0;int n;scanf("%d",&n);while(i<=n/2){if(n%i==0)s=s+i;i++;}if(s==n)printf("YES");elseprintf("NO");}1027 求1+22+333+ … 前n 项的和53%(216/407) 47% 04循环结构41.#include <stdio.h>main(){int i,n,t,sum=0,a=0;scanf("%d",&n);for(i=1;i<=n;i++){a=a*10+1;t=a*i;sum=sum+t;}printf("%d",sum);}1028 求sum=b+bb+bbb+bbbb+... 70%(220/315) 31% 04循环结构42.#include<stdio.h>main(){int m,b,i,t,a=0,sum=0;scanf("%d%d",&b,&m);for(i=1;i<=m;i++){a=a*10+1;t=b*a;sum=sum+t;}printf("%d",sum);}1029 求1-1/2+1/3-1/4+1/5-1/6+ … 的前n项的值83%(229/277) 18% 04循环结构43.#include "stdio.h"int main(){int i=2,detax;float s=1,t=1;scanf("%d",&detax);do{s=s-t/i;i++;t=-t;}while(i<=detax);printf("%.6f",s);}1030 求1-1/(2*2)+1/(3*3)-1/(4*4)+1/(5*5)-1/(6*6)+ … 前n 项值92%(208/226) 8% 04循环结构44.#include "stdio.h"int main(){int i=2;float s=1,t=1,n;scanf("%f",&n);do{s=s-t/(i*i);i++;t=-t;}while(i<=n);printf("%.6f",s);}1031 编程计算∏的近似值59%(169/285) 41% 04循环结构45.#include "stdio.h"int main(){int i=2;double s=1,t=1,detax;scanf("%lf",&detax);do{s=s-t/(2*i-1);i++;t=-t;}while(1.0/(2*i-1)>=detax);printf("%lf",4*s);}1032 编程计算1+x/2+2*x*x/3+ 3*x*x*x/5+ 5*x*x*x*x/8+ …… 78%(120/153) 22% 04循环结构46.#include "stdio.h"int f(int);void main(){int i;float x,t=1,s=1;scanf("%f",&x);for(i=1;;i++){t=t*x;s=s+f(i)*t/f(i+1);if(f(i)*t/f(i+1)<0.000001){printf("%.6f",s);break;}}} int f(n){if(n==1)return 1;else if(n==2)return 2;elsereturn f(n-1)+f(n-2);}1033 打印图形72%(162/226) 29% 04循环结构47.#include "stdio.h"void main(){int i,j,k,n;scanf("%d",&n);for(i=1;i<=n;i++){for(j=n-i;j<n-1;j++)printf(" ");if(j>=n-1)for(k=1;k<=2*(n-i)+1;k++)printf("*");if(k>2*(n-i)+1)printf("\n");}}1034 求解中国剩余定理的问题81%(167/205) 18% 04循环结构48.#include "stdio.h"void main(){int i,n;scanf("%d",&n);for(i=1;i<=n;i++){if(i%3==1&&i%5==2&&i%7==3)printf("%d\n",i);}}1035 哪些数加上n 后是完全平方数且加上m 后也是完全平方数66%(156/235) 34% 04循环结构49.#include "stdio.h"#include<math.h>void main(){int i;int n,m;double nsqrt,msqrt;scanf("%d %d",&n,&m);for(i=1;i<=100000;i++){nsqrt=sqrt(i+n);msqrt=sqrt(i+m);if(nsqrt-(int)sqrt(i+n)==0&&msqrt-(int)sqrt(i+m)==0)printf("%d\n",i);}}1084 求解不定方程的非负整数的根94%(154/164) 6% 04循环结构50.#include "stdio.h"void main(){int x,y,z;int i;for(i=4;i<=100;i=i+4){x=i;if((300+3*x)%4==0){z=(300+3*x)/4;y=(100-7*x)/4;}if(x>0&&y>0&&z>0)printf("%d %d %d\n",x,y,z);}}1085 百钱百鸡问题96%(174/182) 4% 04循环结构51.#include "stdio.h"void main(){int n,m;int i;scanf("%d %d",&n,&m);for(i=1;;i++){if((n+i)==2*(m+i)){printf("%d",i);}}}1086 多少年后父亲的年龄是儿子的年龄的2倍77%(185/241) 23% 04循环结构52.#include "stdio.h"void main(){int n,m;int i;scanf("%d %d",&n,&m);for(i=1;i>0;i++){if((n+i)==2*(m+i)){printf("%d",i);break;}}}1087 特殊的四位数96%(171/178) 4% 04循环结构53.#include <stdio.h>main(){int a,b,c,d,i,k,f;for(i=1000;i<=9999;i++){ a=i%10;b=(i/10)%10;c=(i/100)%10;d=i/1000;f=a*1000+b*100+c*10+d;for(k=2;k<=9;k++){if(i*k==f&&a!=0)printf("%d\n",i);}}}1082 计算F(G(x))的值76%(155/204) 24% 05函数54.#include "stdio.h"#include<math.h>void main(){double x;double g,f;scanf("%lf",&x);g=2*x+1;f=(g+1)*(g+1);printf("%.2lf",f);}1083 哪些数是回文数?74%(111/150) 26% 05函数55.#include<stdio.h>int f(int y){int s=0;do{s=s*10+y%10;y=y/10;}while(y>0);return s;}main(){int m,n,i;scanf("%d%d",&m,&n);for(i=m;i<=n;i++){if(i==f(i))printf("%d\n",i);}}1088 编写阶乘函数求表达式的值91%(144/158) 8% 05函数56.#include "stdio.h"int fun(int);void main(){int n,m;double s;scanf("%d %d",&n,&m);s=(double)fun(m)/(fun(n)*fun(n-m));printf("%.6f",s);}int fun(x){if(x==1)return 1;elsereturn x*fun(x-1);}1089 编程计算两个数的最大公约数92%(131/143) 9% 05函数57.#include "stdio.h"void main(){int t,i;int m, n;scanf("%d %d",&m,&n);for(i=1; ;i++){if(m%n==0){printf("%d",n);break;}else{t=m%n;m=n;n=t;}}}1090 计算一个数的所有质因数64%(121/189) 37% 05函数58.#include "stdio.h" void main(){int k,l;int j;scanf("%d",&k);for(j=2;j<k;j++){if(k%j==0){for(l=2;l<j;l++)if(j%l==0) break;}if(l>=j)printf("%d\n",j);}}1095 求递归函数的值96%(114/119) 4% 05函数59.#include "stdio.h"int f(int);void main(){int x;scanf("%d",&x);printf("%d",f(x));}int f(n){if(n==1)return 10;elsereturn f(n-1)+2;}1036 将一维数组中的数据按逆序重新存放81%(134/166) 20% 06数组和指针60.#include "stdio.h"void main(){int a[20];int i,j,n;scanf("%d\n",&n);for(i=0;i<n;i++){scanf("%d",&a[i]);}for(j=n-1;j>=0;j--){printf("%d ",a[j]);}}1037 统计一组数据中正数、负数和零的个数84%(127/152) 17% 06数组和指针61.#include<stdio.h>main(){int n,a[20];int i,j,k,l;int p=0,b=0,c=0;scanf("%d\n",&n);for(i=0;i<n;i++)scanf("%d",&a[i]);for(j=0;j<n;j++){if(a[j]>0)p++;}for(k=0;k<n;k++){if(a[k]<0)b++;}for(l=0;l<n;l++){if(a[l]==0)c++;}printf("%d %d %d",p,b,c);}1038 计算一组数据的平均值92%(132/144) 9% 06数组和指针62.#include "stdio.h"void main(){float a[20];int i,j,n;float s=0,pj;scanf("%d\n",&n);for(i=0;i<n;i++){scanf("%f",&a[i]);}for(j=0;j<n;j++){s=s+a[j];}pj=s/n;printf("%.6f",pj);}1039 统计一个串中字母、数字和其它字符的个数66%(104/158) 31% 06数组和指针63.#include<stdio.h>main(){char c[1000];int i,n=0,z=0,q=0;gets(c);for(i=0;c[i];i++){if(c[i]>='0'&&c[i]<='9')n=n+1;else if((c[i]>='A'&&c[i]<='Z')||(c[i]>='a'&&c[i]<='z')) z=z+1;else q++;}printf("%d %d %d",z,n,q);}1040 判断一组数据是否是从小到大的序列76%(100/131) 24% 06数组和指针64.#include "stdio.h"void main(){int ch[20];int i,j=0,n;scanf("%d",&n);for(i=0;i<n;i++)scanf("%d",&ch[i]);while(n-j-1){if(ch[j]>=ch[j+1]) break;j++;}if(j>=n-1)printf("YES");elseprintf("NO");}1041 判断一个字符串是否是回文78%(103/132) 22% 06数组和指针65.#include <stdio.h>#include <string.h>void main(){char ch[50];int i, n;scanf("%s",ch);n=strlen(ch);for(i=0;i<n;i++){if(ch[i]!=ch[n-i-1]) break;}if(i>=n)printf("YES");elseprintf("NO");}1042 数组中有这个数吗?76%(94/123) 24% 06数组和指针66.#include "stdio.h"void main(){int a[3][4]={{1,2,3},{4,5,6},{7,8,9}};int i,j,n;scanf("%d",&n);for(i=0;i<=2;i++){for(j=0;j<=2;j++){if(n==(3*i+j+1)){printf("%d %d",i,j);}}}if(n>=10)printf("-1");}1043 求出二维数组中最大元素的值及其位置79%(97/123) 20% 06数组和指针67.#include "stdio.h"void main(){int ch[3][4];int i,j,n,m;int max;for(i=0 ; i<3 ; i++)for(j=0 ; j<4 ; j++)scanf("%d",&ch[i][j]);max=ch[0][0];for(i=0 ; i<3 ; i++)for(j=0 ; j<4 ; j++)if(ch[i][j]>=max){max=ch[i][j];n=i;m=j;} printf("%d %d %d",max,n,m);}1044 交换二维数组中最大元素和最小元素80%(87/109) 20% 06数组和指针68.#include "stdio.h"void main(){int ch[3][4];int i,j,n,m;int t;int x1,y1,x2,y2;int max,min;for(i=0 ; i<3 ; i++)for(j=0 ; j<4 ; j++)scanf("%d",&ch[i][j]);max=ch[0][0];for(i=0 ; i<3 ; i++)for(j=0 ; j<4 ; j++)if(ch[i][j]>=max){max=ch[i][j];x1=i;y1=j;}min=ch[0][0];for(n=0 ; n<3 ; n++)for(m=0 ; m<4 ; m++)if(ch[n][m]<=min){min=ch[n][m];x2=n;y2=m;}t=ch[x1][y1];ch[x1][y1]=ch[x2][y2];ch[x2][y2]=t;for(i=0 ; i<3 ; i++){for(j=0 ; j<4 ; j++)printf("%d ",ch[i][j]);printf("\n");}}1045 统计字符串中单词数量60%(85/142) 41% 06数组和指针69.#include<stdio.h> #include<string.h>#include<Ctype.h> int sum(char []); main(){char s[101];gets(s);printf("%d",sum(s)); }int sum(char s[]){int i=0,j=0,n=0; char temp[20]={'\0'}; do{if(isalpha(s[i]))temp[j++]=s[i]; else{temp[j]='\0';if(strlen(temp)>0)n=n+1;j=0;}}while(s[i++]); return n;}1046 将一个字符串中所有字母转成大写87%(92/106) 13% 06数组和指针70.#include<stdio.h>#include<string.h>main(){int i;char a[101];gets(a);for(i=0;a[i];i++){if(a[i]>='a'&&a[i]<='z')a[i]-=32;}puts(a);}1047 删除字符串中的前导*号83%(90/109) 18% 06数组和指针71.#include "stdio.h"#include <string.h>#include <Ctype.h>void main(){char s[100],a[100]={0};int j=0,i=0,k=0;gets(s);while(s[i++]=='*')k++;for(i=k;i<100;i++)a[j++]=s[i];puts(a);}1048 删除字符串的*号后缀76%(86/113) 15% 06数组和指针72.#include "stdio.h"#include <string.h>#include <Ctype.h>void main(){char s[100],a[100]={0};int j=0,i=0,k=0;gets(s);while(s[i++]!='\0')k++;while(s[k-1]=='*'){k--;}for(i=0;i<k;i++)a[j++]=s[i];puts(a);}1049 删除字符串中所有的*号87%(92/106) 13% 06数组和指针73.#include "stdio.h"#include <string.h>#include <Ctype.h>void main(){char s[100],a[100]={0};int j=0,i=0;gets(s);do{if(isalpha(s[i]))a[j++]=s[i];}while(s[i++]);puts(a); }1094 求矩阵的两对角线上的元素之和78%(66/85) 23% 06数组和指针74.#include "stdio.h"void main(){int a[10][10],n;int i,j,s1=0,s2=0,s;scanf("%d",&n);for(i=0;i<n;i++)for(j=0;j<n;j++)scanf("%d",&a[i][j]);for(i=0;i<n;i++)for(j=0;j<n;j++){if(i==j)s1=s1+a[i][j];if( (i+j) == n-1&&i!=j)s2=s2+a[i][j];}s=s1+s2;printf("%d",s);}1097 结构体:按成绩排序77%(43/56) 22% 07结构体75.#include "stdio.h"struct student{char number[11];char name[9];int chengji;};int main(){int i,j;int n;struct student zg[100];struct student q;scanf("%d",&n);for(i=0;i<n;i++){scanf("%s%s%d",zg[i].number,zg[i].name,&zg[i].chengji); }for(i=0;i<n-1;i++)for(j=i+1;j<n;j++){if(zg[i].chengji>zg[j].chengji){q=zg[i];zg[i]=zg[j];zg[j]=q;}}for(i=0;i<n;i++){printf("%s %s %d\n",zg[i].number,zg[i].name,zg[i].chengji);}}1098 结构体:求最高分和最低分83%(40/48) 17% 07结构体76.#include "stdio.h"struct student{char number[11];char name[9];int chengji;};int main(){int i,j,t,s;int n;int maxmin;struct student zg[100];scanf("%d",&n);for(i=0;i<n;i++){scanf("%s%s%d",zg[i].number,zg[i].name,&zg[i].chengji);}maxmin=zg[0].chengji;for(i=1;i<n;i++)if(maxmin<zg[i].chengji){maxmin=zg[i].chengji;t=i;}for(j=1;j<n;j++)if(maxmin>zg[j].chengji){maxmin=zg[j].chengji;s=j;}printf("%s %s %d\n",zg[t].number,zg[t].name,zg[t].chengji);printf("%s %s %d",zg[s].number,zg[s].name,zg[s].chengji); }1099 结构体:计算学生平均分74%(39/53) 27% 07结构体77.#include<stdio.h>struct student{char num[10];char name[20];float fs1,fs2; }main(){struct student stu[20];int n,i;scanf("%d",&n);for(i=0;i<n;i++){scanf("%s",&stu[i].num);scanf("%s",&stu[i].name);scanf("%f",&stu[i].fs1);scanf("%f",&stu[i].fs2);}for(i=0;i<n;i++)stu[i].fs1=(stu[i].fs1+stu[i].fs2)/2;for(i=0;i<n;i++)printf("%s %s %0.1f\n",stu[i].num,stu[i].name,stu[i].fs1); }1100 结构体:在线编程评测系统的排名57%(34/60) 47% 07结构体78.#include<stdio.h>int fun(struct student*p,struct student*q);struct student{char num[20];int men;int fen;}main(){struct student stu[20];struct student;int n,i,j;scanf("%d",&n);for(i=0;i<n;i++){scanf("%s %d %d",&stu[i].num,&stu[i].men,&stu[i].fen); }for(i=0;i<n;i++){for(j=i+1;j<n;j++){if(stu[i].men<stu[j].men)fun(&stu[i],&stu[j]);if(stu[i].men==stu[j].men&&stu[i].fen>stu[j].fen)fun(&stu[i],&stu[j]);}}for(i=0;i<n;i++)printf("%d %s %d %d\n",i+1,stu[i].num,stu[i].men,stu[i].fen); }int fun(struct student*p,struct student*q){struct student a;a=*p;*p=*q;*q=a;return 0;}1050 [初级竞赛题] 亲和数82%(89/109) 19% 09综合应用79.#include<stdio.h>main(){int a,b,i,j,d,sum=0,sun=0;scanf("%d %d",&a,&b);for(i=1;i<a;i++){d=a/i;if(d*i==a){sum=sum+i;}}for(j=1;j<b;j++){d=b/j;if(d*j==b){sun=sun+j;}}if(sum==b&&sun==a)printf("YES\n");elseprintf("NO\n");}1051 [初级竞赛题] 陶陶摘苹果81%(70/86) 19% 09综合应用80.#include<stdio.h>main(){int a[10];int i,j,n=0;for(i=0;i<10;i++){scanf("%d",&a[i]);}scanf("%d",&j);for(i=0;i<10;i++){if(a[i]<=j+30){n+=1;}}printf("%d\n",n);}1052 [初级竞赛题] Lucky Number 55%(36/66) 46% 09综合应用81.#include<stdio.h>main(){int a[1000];int i,j,n;int k=-1,s=1001;scanf("%d",&n);for(i=0;i<n;i++)scanf("%d",&a[i]);for(i=0;i<n;i++){for(j=0;j<n;j++)if(a[i]==a[j]&&i!=j){break;}if (j==n){if(a[i]<s)。