常熟理工 C语言26编程题
C语言编程题精选及参考答案
参加8至10次:加8分; 参加10次以上:加10分。 程序运行时输入某人参加活动的次数,则输出其应该加的分数;如果输入为负值,则给 出相应提示。 77. 编程计算如下表达式的值:1/2+1/3+...+1/n,其中的 n 在程序运行时输入。 78. 从键盘输入一元二次方程的三个系数,要求计算出其根:若有不相等的实根则输出两 实根;若有相等的实根则只输出一个;若无实根则给出相应提示;若输入导致一元二次 方程不成立,则给出提示。 79. 求以下不定方程组的所有正整数解:
22. 输入 n,求下列级数前 n 项的和。
1+1/2-2/3+3/4……
23. 编写程序用于判断一个数是否是素数。
24. 编程序输出1--1000内的所有素数。所谓素数是指除了能被1和它本身之外不能被其
它数整除的数。
25. 输入20个数,先按原来顺序输出,再将数组中元素逆置后输出,即将第1个数跟
第20个互换、第2个数跟第19个互换......。
48. 编程计算下面公式:
49. 编一子程序实现十进制数转换为其它进制数。主程序将十进制数43 和17分别转换为 二进制数和八进制数。
50. 编一个程序计算一元二次方程的根。
51. 编程输入一个整数,若为四位正整数则要求正确分离出其个、十、百、千位及中间 的两位数并分别输出,如输入的是1234,则输出应该为4、3、2、1、23;否则给出一 个出错提示。
68. 今年父亲30岁,儿子6岁,问多少年后父亲的年龄是儿子年龄的2倍? 69. 一个四位数,当它逆向排列时得到的4位数是它自身的整数倍,请找出所有符合这一
山理工c语言复习题
山理工c语言复习题C语言是一种广泛使用的计算机编程语言,以其高效和灵活的特点在软件开发、系统编程等领域有着重要的地位。
以下是一些山理工C语言复习题,供同学们复习使用:一、选择题1. C语言中,以下哪个关键字用于定义一个函数?- A. int- B. if- C. while- D. void2. 以下哪个是C语言中的合法变量名?- A. 2variable- B. variable-name- C. variable#name- D. variable_name3. 在C语言中,哪个运算符用于求两个数的余数?- A. %- B. /- C. *- D. -4. 以下哪个语句可以用来实现循环结构?- A. if- B. switch- C. for- D. do-while5. 在C语言中,以下哪个函数用于将整数转换为字符串?- A. atoi- B. itoa- C. toupper- D. strcpy二、填空题1. C语言中,一个基本的数据类型包括_______、_______、_______等。
2. 定义一个整型变量的关键字是_______。
3. 在C语言中,数组的下标从_______开始。
4. 函数的返回值类型定义在函数名的_______。
5. 字符串在C语言中以_______字符结尾。
三、简答题1. 简述C语言中指针的概念及其作用。
2. 解释C语言中结构体(struct)的用途和定义方法。
3. 描述C语言中函数的调用过程和参数传递方式。
四、编程题1. 编写一个C语言程序,实现输入两个整数,输出它们的和、差、积、商。
2. 编写一个函数,该函数接受一个字符串作为参数,返回字符串中字符的数量。
3. 编写一个程序,使用数组存储10个学生的分数,并计算平均分。
希望这些复习题能够帮助同学们更好地掌握C语言的基本知识和编程技巧。
在复习过程中,不仅要理解每个概念,还要通过实践来加深理解。
祝同学们学习进步!。
常熟理工-C语言26编程题
编程题:1、根据矩形面积的计算方法,编写一个输入圆半径r,计算园周长L和圆面积S的程序。
注意判断圆半径r是否大于零。
#include <stdio.h>#define PI 3.1415926int main(){double c, r, area;printf("半径=");scanf("%lf", &r);c = 2 * PI * r;area = PI * r * r;printf("周长=%f,面积=%f\n", c, area);return 0;}2、输入三个整型数据,判断这三个整型数据能否围成三角形,如果能组成三角形,计算并输出它的面积,如果不能围成三角形输出“三条边不能围成三角形”。
#include<math.h>Void main(){Float a,b,c,d,s;s canf(“%f %f %f”,&a,&b,&c);if ((a+b))>c&&(a+b)>b&&(b+c)>a){d=(a+b+c)/2;s=sqrt(d*(d-a)*(d-b)*(d-c));printf(%5.2f %5.2%f 5.2%f The area is %5.2f\n”,a,b,c,s);}else{printf(“The data is wrong\n”)}}3、输入一个百分制成绩,输出对应的等级。
90·100:A,80~89:B,70~79:C,60~69D,不及格为E。
#include<stdio.h>void main(){int score,c;scanf("%d",&score);if(score<0)printf("input data error\n"); else{if(score>100)printf("input data error\n");else{c=score/10;switch(c){case 10:case 9: printf("A\n");break;case 8: printf("B\n");break;case 7: printf("C\n");break;case 6: printf("D\n");break;case 5:case 4:case 3:case 2:case 1:case 0: printf("E\n");break;}}}}4、编程实现 ⎝⎛<--=>+=0100012x x x x x y 。
最新常熟理工学院-C语言-考试样卷
13.若有如下声明和语句:
int t[3][3], *pt[3], k;
for(k=0; k<3;k++) pt[k]=&t[k][0];
则表达式*(*(pt+1)+2)所引用的是()。
A.t[2][0]B.&t[2][0]C.t[1][2]D.&t[1][2]
(二)创业优势分析
在上海,随着轨道交通的发展,地铁商铺应运而生,并且在重要商圈已经形成一定的气候,投资经营地铁商铺逐渐为一大热门。在人民广场地下的迪美购物中心,有一家DIY自制饰品店--“碧芝自制饰品店”
虽然调查显示我们的创意计划有很大的发展空间,但是各种如“漂亮女生”和“碧芝”等连锁饰品店在不久的将来将对我们的创意小屋会产生很大的威胁。
D.fun函数的形式参数不能取名为a
11.若函数调用时的实参为变量,则以下关于函数形参和实参的叙述中正确的是()。
A.实参和其对应的形参占用同一存储单元
B.形参不占用存储单元
C.同名的实参和形参占用同一存储单元
D.形参和实参占用不同的存储单元
12.已有声明”int a[5];”,以下表达式中不能正确取得a[1]指针的是()。
C.strcpy(s2, s1);D.strcpy(s2, s3);
7.执行以下程序后的结果是()。
#include <stdio.h>
void main()
{int x=3;
Do
{
printf("%d\t", x=x-3);
}while(!x);
}
常熟理工C语言题库
1.以下对于break语句使用的正确描述是()。
A:可以出现在程序中的任何位置B:只能出现在循环或switch结构中C:只能出现在switch结构中 D:只能出现在循环结构中2.以下程序的输出结果为()。
int i;void prt( ){ for(i=5;i<8;i++)printf("%c",'*');printf("\t");}main( ){for(i=5;i<=8;i++) prt( );}A:*** B:*** *** *** *** C:*** *** D:* * *3.已知有声明 char c='1';int x=300;float t=35000;double d=3.1234567e10; ,则以下表达式求值时除( )外其结果都可能是不准确的。
A:x=t/c B:t=d/x C:t=d/le5f D:t=x+c4.在C语言程序中,以下说法正确的是()。
A:函数的定义可以嵌套,但函数的调用不可以嵌套B:函数的定义不可以嵌套,但函数的调用可以嵌套C:函数的定义和函数的调用都不可以嵌套 D:函数的定义和函数的调用都可以嵌套5.若有以下程序段int r=8;printf("%d\n",r>>1);输出结果是()。
A:16 B:8 C:4 D:26.下面四个选项中,均是不合法的用户标识符的选项是()A:A P_0 do B:float la0 _A C:b-a goto int D:_123 temp INT7.以下正确的if语句是()第 1 页/共 2 页A:if(n>0) printf("%f",n)printf("%f",-n);B:if(n>0){ n=n+m;printf("%f",n);}else printf("%f",-n);C:if(n>0){ n=n+m;printf("%f",n);};else printf("%f",-n);D:if(n>0){ n=n+m;printf("%f",n) };else printf("%f",-n);8.若有声明语句"int a=5,b=4,c=3,*p=&a;",则下列()表达式语句是正确的。
C语言经典编程100题(答案版)
C语言经典程序100题(答案版)【程序1】题目:企业发放的奖金根据利润提成。
利润(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.程序源代码:1.#include"stdio.h"2.#include"conio.h"3.main()4.{5.long int i;6.int bonus1,bonus2,bonus4,bonus6,bonus10,bonus;7.scanf("%ld",&i);8.bonus1100000*0.1;9.bonus2bonus1+100000*0.75;10.bonus4bonus2+200000*0.5;11.bonus6bonus4+200000*0.3;12.bonus10bonus6+400000*0.15;13.if(i<100000)14.bonus i*0.1;15.else if(i<200000)16.bonus bonus1+(i-100000)*0.075;17.else if(i<400000)18.bonus bonus2+(i-200000)*0.05;19.else if(i<600000)20.bonus bonus4+(i-400000)*0.03;21.else if(i<1000000)22.bonus bonus6+(i-600000)*0.015;23.else24.bonus bonus10+(i-1000000)*0.01;25.printf("bonus%d",bonus);26.getch();27.}【程序2】题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?1.程序分析:可填在百位、十位、个位的数字都是1、2、3、4。
c语言编程题库100题
c语言编程题库100题C语言是一门广泛应用于计算机领域的高级编程语言。
对于学习者来说,掌握C语言编程是一项必修课程。
为此,我们为大家整理了100道C语言编程题,供大家练练手,锻炼编程能力。
以下是题目列表:##### 基础篇1、编写一个C程序,输出“Hello, World!”。
2、编写一个C程序,输入两个数,求和并输出结果。
3、编写一个C程序,输入三个数,求平均值并输出结果。
4、编写一个C程序,输入三个数,比较大小并输出最大值。
5、编写一个C程序,输入一个数,判断奇偶性并输出结果。
6、编写一个C程序,输入一个数,判断是否为质数并输出结果。
7、编写一个C程序,输入一个数,判断是否为闰年并输出结果。
8、编写一个C程序,输入一个字符,判断是否为字母并输出结果。
9、编写一个C程序,输入一个数,判断是否为回文数并输出结果。
10、编写一个C程序,输入一个年份和月份,输出该年该月的天数。
##### 数组篇11、编写一个C程序,输入一个整数数组,求所有元素之和并输出结果。
12、编写一个C程序,输入一个数组,找出最大值并输出结果。
13、编写一个C程序,输入一个数组,找出最小值并输出结果。
14、编写一个C程序,输入一个数组,计算平均值并输出结果。
15、编写一个C程序,输入一个数组,判断是否为升序或降序排列并输出结果。
16、编写一个C程序,输入一个数组,将数组元素逆序排列并输出结果。
17、编写一个C程序,输入两个数组,将两个数组合并后按照升序或降序排列并输出结果。
18、编写一个C程序,输入一个数组,输出数组中出现次数最多的元素。
19、编写一个C程序,输入一个数组,删除指定位置上的元素并输出结果。
20、编写一个C程序,输入一个数组和一个数,将该数插入到数组中并输出结果。
##### 字符串篇21、编写一个C程序,输入一个字符串,统计字符串中的字符个数并输出结果。
22、编写一个C程序,输入一个字符串,统计字符串中的单词个数并输出结果。
常熟理工学院c语言知识学知识题目整合(本二)
下面选项中,不能用作C语言标识符的是(C )。
A._00 B.print C.&b D.FOR下面合法的标识符是(A )。
A.IF B.-321 C.c f D.int可以将高级语言编写的源程序转换为目标程序的软件是(D )。
A.汇编程序B.解释程序C.编辑程序D.编译程序C 语言程序中可以对程序进行注释,注释部分必须用符号(C )括起来。
A.“{”和“}”B.“[”和“]”C.“/*”和“*/”D.“*/”和“/*”已有预处理命令“#include <math.h>”和声明“int x=4, y;”,下面语句中语法正确的是(C )。
A.if(x%2=1)y=x; B.if(sqrt(x)%2)y=x;C.if(x==1)y=x; D.if(x==1)y=&x;下列运算符中,优先级最低的是(D )。
A.* B.!= C.+ D.=逻辑“异或”运算可描述为当且仅当a、b两个操作数中只有一个为真时才为真,其他情况下均为假。
下面能够正确表示逻辑“异或”运算的表达式是(D ))。
A.a || b B.a && bC.(a&&b)&&!(a || b) D.(a || b)&&!(a&&b)下面关于continue和break语句的叙述中正确的是(B )。
A.continue和break语句都可以出现在switch语句中B.continue和break语句都可以出现在循环语句的循环体中C.在switch语句允许出现continue和break语句D.执行循环语句中的continue和break语句都将立即终止循环在while(e)语句中的e与下面条件表达式等价的是(D )。
A.e==0 B.e==1 C.e!=1 D.e!=0已有函数fun的定义“void fun(void) {printf("That's great! ");}”,则调用fun函数的正确形式是(B )。
常熟理工学院C语言题库最新版
表达式sizeof("key")的值是【】。
④③②①①1 ②2 ③3 ④4下面选项中,不能用作用户标识符的是【】。
①&a ②_00 ③FOR ④print已知有声明“int x=3, y=4, z;”,则执行语句“z=1/2*(x+y);”后,z的值是【】。
①0 ②3③3.5 ④4下列运算符中,优先级最低的是【】。
①* ②!=③+ ④=一元二次方程ax2+bx+c=0有两个相异实根的条件是a≠0且b2-4ac>0,下面选项中正确的表达式是【】。
①a!=0, b*b-4*a*c>0 ②a!=0||b*b-4*a*c>0③a&&b*b-4*a*c>0 ④!a&&b*b-4*a*c>0下面选项中,可以作为用户标识符的是【】。
①6_6 ②void③unsigned ④_0_已有定义“int n; float a, b;”,则执行语句“b=n=a=3.89;”后,b的值为【】。
①3 ②3.0③3.89 ④4.0下列运算符中,优先级最低的是【】。
①* ②!=③+ ④=表达式!(x>0&&y>0) 等价于【】。
①!(x>0)||!(y>0) ②!x>0||!y>0③!x>0&&!y>0 ④!(x>0)&&!(y>0)下面定义符号常量p为3.14中正确的是【】。
①#define p 3.14; ②#define p(3.14)③#define p=3.14 ④#define p 3.14在下面各组标识符中,均可以用作变量名的一组是【】。
①a02, Int ②table_1, a*.0③0_a, W13 ④for, point已知有声明“int x=3, y=4, z;”,则执行语句“z=1/3*(x+y);”后,z的值是【】。
100道C语言编程题参考答案
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)。
c语言入门编程基础100题
c语言入门编程基础100题C语言是一种广泛应用于计算机编程的高级编程语言,它具有简洁、高效、灵活等特点,因此成为了许多程序员的首选。
对于初学者来说,掌握C语言的基础知识是非常重要的。
下面是一些C语言入门编程基础题目,帮助初学者巩固基础知识。
1. 编写一个程序,输出"Hello, World!"。
2. 编写一个程序,输入两个整数,然后输出它们的和。
3. 编写一个程序,输入一个整数,然后输出它的平方。
4. 编写一个程序,输入一个整数,然后输出它的绝对值。
5. 编写一个程序,输入一个字符,然后输出它的ASCII码。
6. 编写一个程序,输入一个字符,然后判断它是否为大写字母。
7. 编写一个程序,输入一个字符,然后判断它是否为小写字母。
8. 编写一个程序,输入一个字符,然后判断它是否为数字。
9. 编写一个程序,输入一个字符,然后判断它是否为字母。
10. 编写一个程序,输入一个字符,然后判断它是否为特殊字符。
11. 编写一个程序,输入一个年份,然后判断它是否为闰年。
12. 编写一个程序,输入一个整数,然后判断它是否为素数。
13. 编写一个程序,输入一个整数,然后输出它的阶乘。
14. 编写一个程序,输入一个整数,然后输出它的倒数。
15. 编写一个程序,输入一个整数,然后输出它的二进制表示。
16. 编写一个程序,输入一个整数,然后输出它的十六进制表示。
17. 编写一个程序,输入一个整数,然后输出它的八进制表示。
18. 编写一个程序,输入一个整数,然后输出它的十进制表示。
19. 编写一个程序,输入一个字符串,然后输出它的长度。
20. 编写一个程序,输入一个字符串,然后输出它的反转字符串。
21. 编写一个程序,输入一个字符串,然后判断它是否为回文字符串。
22. 编写一个程序,输入一个字符串,然后判断它是否为有效的IP 地址。
23. 编写一个程序,输入一个字符串,然后判断它是否为有效的邮箱地址。
24. 编写一个程序,输入一个字符串,然后判断它是否为有效的手机号码。
江苏省计算机c语言等级考试试题及答案
江苏省计算机c语言等级考试试题及答案一、选择题(每题2分,共40分)1. 在C语言中,以下哪个关键字用于定义一个结构体?A. structB. unionC. enumD. typedef答案:A2. 下列哪个选项不是C语言中的合法标识符?A. _123B. mainC. 2variableD. int答案:C3. C语言中,用于声明一个整型数组的语句是:A. int a[10];B. int [10] a;C. int a[];D. int a=10;答案:A4. C语言中,以下哪个函数用于计算字符串的长度?A. strlen()C. strcat()D. strcmp()答案:A5. 在C语言中,以下哪个运算符用于取地址?A. *B. &C. %D. #答案:B6. 下列哪个选项是C语言中的逻辑运算符?A. &&B. ||C. <=D. %答案:A7. 在C语言中,以下哪个关键字用于定义一个函数?A. structB. unionC. enumD. void答案:D8. C语言中,以下哪个函数用于将字符串复制到另一个字符串?B. strcat()C. strcmp()D. strlen()答案:A9. 在C语言中,以下哪个关键字用于声明一个变量为静态存储类别?A. staticB. externC. autoD. register答案:A10. C语言中,以下哪个关键字用于定义一个枚举类型?A. structB. unionC. enumD. typedef答案:C二、填空题(每题2分,共20分)1. 在C语言中,声明一个字符型变量的语句是___________。
答案:char c;2. C语言中,用于输入输出的库函数是___________。
答案:stdio.h3. 在C语言中,用于定义一个指针变量的语句是___________。
答案:int *p;4. C语言中,用于定义一个二维数组的语句是___________。
C语言经典程序100题(完整版)
C语言经典程序100题(完整版)-CAL-FENGHAI.-(YICAI)-Company One1【程序1】题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数都是多少程序分析:可填在百位、十位、个位的数字都是1、2、3、4。
组成所有的排列后再去掉不满足条件的排列。
#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,求应发放奖金总数?程序分析:请利用数轴来分界,定位。
注意定义时需把奖金定义成长整型。
#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又是一个完全平方数,请问该数是多少?程序分析:在10万以内判断,先将该数加上100后再开方,再将该数加上268后再开方,如果开方后的结果满足如下条件,即是结果。
c语言入门100题目
c语言入门100题目
学习C语言对于初学者来说是一个很好的选择。
下面我将列举一些入门级别的C语言练习题目,希望对你有所帮助。
1. 编写一个程序,输出"Hello, World!"。
2. 编写一个程序,接受用户输入的两个整数,然后输出它们的和。
3. 编写一个程序,计算并输出1到100的和。
4. 编写一个程序,判断一个输入的整数是奇数还是偶数。
5. 编写一个程序,接受用户输入的年份,判断该年份是否为闰年。
6. 编写一个程序,找出一个数组中的最大值和最小值。
7. 编写一个程序,将一个字符串反转。
8. 编写一个程序,接受用户输入的数字n,计算并输出1到n
的阶乘。
9. 编写一个程序,接受用户输入的字符,判断该字符是字母、
数字还是其他字符。
10. 编写一个程序,实现一个简单的计算器,能够进行加、减、乘、除运算。
以上是一些入门级别的C语言练习题目,希望能够帮助你开始
学习C语言编程。
如果你对这些题目有任何疑问,欢迎随时向我提问。
祝你学习顺利!。
c语言上机试题库及答案
c语言上机试题库及答案1. 题目一:字符串翻转要求:编写一个C语言程序,实现字符串的翻转功能。
```c#include <stdio.h>#include <string.h>void reverseString(char *str) {int len = strlen(str);char temp;for(int i = 0; i < len / 2; i++) {temp = str[i];str[i] = str[len - i - 1];str[len - i - 1] = temp;}}int main() {char str[100];printf("Enter a string: ");scanf("%s", str);reverseString(str);printf("Reversed string: %s\n", str);return 0;}```2. 题目二:计算数组中的最大值要求:编写一个C语言程序,计算并输出一个整数数组中的最大值。
```c#include <stdio.h>int findMax(int arr[], int size) {int max = arr[0];for(int i = 1; i < size; i++) {if(arr[i] > max) {max = arr[i];}}return max;}int main() {int arr[] = {10, 45, 23, 67, 89, 34};int size = sizeof(arr) / sizeof(arr[0]);int max = findMax(arr, size);printf("The maximum value in the array is: %d\n", max); return 0;}```3. 题目三:实现二分查找要求:编写一个C语言程序,实现一个二分查找算法,查找一个有序数组中是否存在目标值。
常熟理工学院-C语言-考试样卷
程序设计基础(C语言)考试卷(本科样卷)(理论部分)考试时间120分钟,答案请写在答题卡上一、选择题(每小题2分,共40分)1.以下语句中不包含关键字的是()。
A.x=sqrt(2);B.while(x!=0)x--;C.if(x<0)x=-x;D.return x;2.执行以下程序时,#include<stdio.h>main(){ int a; float b;scanf("%3d%f",&a,&b);printf("%d\t%f",ab);}若要求变量a和b分别从键盘获得输入值45和678.0,则以下四种输入数据中(凵代表”空格”键,↙代表”回车”键),不能达到该要求的输入数据是()。
A.45凵678↙B.45↙678↙C.45,678↙D.045678↙3.已知有声明int x=2:,以下表达式中值不等于8的是()。
A.x+=2,x*2 B.x+=x*=XC.(x+7)/2*((x+1)%2+1) D.x*7.2/x+14.已知有声明”int a=3, b=4, c;”,则执行语句”c=1/2*(a+b);”后,c 的值是()。
A.0 B.3 C.3.5 D.45.已知字母A的ASCII码是65,字母a的ASCII码是97,变量c中存储了一个大写字母的编码。
若要求将c中大写字母编码转换成对应小写字母编码,则以下表达式中不能实现该功能的是()。
A.c=tolower(c) B.c=c+32C.c=c-’A’+’a’D.c= (c +’A’)%26-’a’6.已有声明”char *s1="China", s2[10], *s3="Nanjing"; *s4;”,以下字符串赋值语句在执行时可能出现错误的是()。
A.strcpy(s3, s1); B.strcpy(s4, s1);C.strcpy(s2, s1); D.strcpy(s2, s3);7.执行以下程序后的结果是()。
c语言编程题经典100例
c语言编程题经典100例下面是经典的c语言编程题100例,每道题目都涵盖了c语言编程的各个方面,包括基本数据类型、条件语句、循环结构、函数与指针等。
通过这100道题目的练习,可以帮助初学者快速掌握c语言编程的基础知识,也有助于进一步深入了解c语言的高级特性。
1. 打印Hello World。
2. 输入一个整数,判断是否为偶数。
3. 输入两个整数,求它们的和、差、积、商和余数。
4. 输入一个整数,求它的绝对值。
5. 输入一个字符,判断它是否为字母。
6. 输入三个整数,找出其中的最大值。
7. 输入一个字符,判断它是否为数字。
8. 输入一个整数,判断它是否为质数。
9. 输入两个字符串,比较它们的大小。
10. 输入一个字符,将它转换为大写或小写。
11. 输入一个浮点数,求它的平方根。
12. 输入一个整数,将它按位取反。
13. 输入一个字符串,翻转它的顺序。
14. 输入一个字符串,统计其中的元音字母个数。
15. 输入一个整数,将它转换为二进制数。
16. 输入两个整数,交换它们的值。
17. 输入一个二维数组,输出它的转置矩阵。
18. 输入一个数组,找出其中的最大值和最小值。
19. 输入一个数组,求它的平均数、中位数和众数。
20. 输入一个数组,判断它是否为回文数。
21. 输入一个字符串,统计其中的单词数量。
22. 输入一个字符串,统计其中的字符数、单词数和行数。
23. 输入两个字符串,判断它们是否为同构字符串。
24. 输入一个字符数组,将它转换为整数。
25. 输入一个浮点数,将它转换为分数。
26. 输入一个浮点数,将它四舍五入到整数。
27. 输入一个字符串,将其中的数字字符替换为其他字符。
28. 输入两个数组,把它们合并成一个新的数组。
29. 输入一个二维数组和一个数值,查找并输出它在二维数组中的位置。
30. 输入一个字符串,判断它是否为回文字符串。
31. 输入两个整数,求它们的最大公约数和最小公倍数。
32. 输入一个表达式,求它的值。
常熟理工学院C语言控制器编程实验指导书答案
实验一熟悉C程序运行环境班级学号姓名成绩一、实验目的1. 熟悉C语言Visual C++6.0调试环境。
2. 掌握C程序的编辑、调试及运行。
二、实验内容项目1. 调试并运行下面程序,并写出运行结果:#include <stdio.h>int main(){printf(“Good morning!\n”);printf(“Hello,world!\n”);return 0;}运行结果(注意,按照屏幕输出格式写):项目2. 调试并运行下面程序,并写出运行结果:#include <stdio.h>int main(){int a , b , sum; /*定义变量*/a=23; b=56; /*为变量赋值*/sum=a+b; /*计算两个变量的和*/printf(“sum is %d\n”,sum); /*输出计算结果*/return 0;}运行结果:项目3. 调试并运行下面程序,并写出运行结果:#include <stdio.h>int max(int,int);int main(){int a , b , c; /*定义变量*/a=23; b=56; /*为变量赋值*/c=max(a,b); /*调用max函数,将得到的值赋给c*/ printf(“max is %d\n”,c); /*输出c的值*/return 0;}int max(int x,int y){ /*定义max函数,函数值为整型*/int z; /*定义变量*/if(x>y) z=x;else z=y;return(z); /*将z的值返回*/}运行结果:三、提高部分1.试想,如果求3个数中的最大者,则程序该如何编写。
程序代码#include<stdio.h>int max(int a,int b)//求两个数之间最大的数{if(a<b)return b;elsereturn a;}int main(){int a,b,c,p;printf("输入a,b,c :\n");scanf("%d%d%d",&a,&b,&c);//输入三个数p=max(a,max(b,c));//调用两次比较函数来获得最大值printf("最大值为:");printf("%d",p);}运行结果:实验二数据及其运算班级学号姓名成绩一、实验目的1. 掌握C数据类型的概念、熟悉整型、字符型和实型基本类型的常量的用法;学会三种基本类型变量的定义、赋值和使用方法。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
编程题:1、根据矩形面积的计算方法,编写一个输入圆半径r,计算园周长L和圆面积S的程序。
注意判断圆半径r是否大于零。
#include <stdio.h>#define PI 3.1415926int main(){double c, r, area;printf("半径=");scanf("%lf", &r);c = 2 * PI * r;area = PI * r * r;printf("周长=%f,面积=%f\n", c, area);return 0;}2、输入三个整型数据,判断这三个整型数据能否围成三角形,如果能组成三角形,计算并输出它的面积,如果不能围成三角形输出“三条边不能围成三角形”。
#include<math.h>Void main(){Float a,b,c,d,s;s canf(“%f %f %f”,&a,&b,&c);if ((a+b))>c&&(a+b)>b&&(b+c)>a){d=(a+b+c)/2;s=sqrt(d*(d-a)*(d-b)*(d-c));printf(%5.2f %5.2%f 5.2%f The area is %5.2f\n”,a,b,c,s);}else{printf(“The data is wrong\n”)}}3、输入一个百分制成绩,输出对应的等级。
90·100:A,80~89:B,70~79:C,60~69D,不及格为E。
#include<stdio.h>void main(){int score,c;scanf("%d",&score);if(score<0)printf("input data error\n"); else{if(score>100)printf("input data error\n");else{c=score/10;switch(c){case 10:case 9: printf("A\n");break;case 8: printf("B\n");break;case 7: printf("C\n");break;case 6: printf("D\n");break;case 5:case 4:case 3:case 2:case 1:case 0: printf("E\n");break;}}}}4、编程实现 ⎝⎛<--=>+=0100012x x x x x y 。
#include <stdio.h>void main (){float x,y;scanf ("%f",&x);if (x>0)y=2*x+1;else{if (x<0)y=-x-1;elsey=0;}printf ("%f",y);}5、求101!nn =∑(即求1!2!3!10!++++)(程序代码和运行结果可写在指导书背面)。
#include<stdio.h>void main(){int s,a,i,ss;for(s=0,a=1 ;a<=10;a++){ {for(ss=1,i=1;i<=a;i++)ss=ss*i;}s=s+ss;}printf("%d\n",s);}6、输入10个数,用“冒泡法”对10个数排序(由小到大)。
#include<stdio.h>main(){int a[10],i,j,t;printf("Input 10 numbers:\n");for(i=0;i<10;i++)scanf("%d",&a[i]);printf("before sorting:\n");for(i=0;i<10;i++)printf("%d ",a[i]);for(j=0;j<9;j++)for(i=0;i<9-j;i++)if(a[i]>a[i+1]){t=a[i];a[i]=a[i+1];a[i+1]=t;}printf("\nafter sorting:\n");for(i=0;i<10;i++)printf("%d ",a[i]);}7、有一篇文章,共有3行文字,每行80个字符。
要求分别统计出其中英文字母和数字的个数。
#include <stdio.h>int main(){int i,j,upp,low,dig,spa,oth;char text[3][80];upp=low=dig=spa=oth=0;for (i=0;i<3;i++){ printf("please input line %d:\n",i+1);gets(text[i]);for (j=0;j<80 && text[i][j]!='\0';j++){if (text[i][j]>='A'&& text[i][j]<='Z')upp++;else if (text[i][j]>='a' && text[i][j]<='z')low++;else if (text[i][j]>='0' && text[i][j]<='9')dig++;else if (text[i][j]==' ')spa++;elseoth++;}}printf("\nupper case: %d\n",upp);printf("lower case: %d\n",low);printf("digit : %d\n",dig);printf("space : %d\n",spa);printf("other : %d\n",oth);return 0;}8、写一个函数,使给定的3*3的二维整型数组转置,即行列互换。
要求输出转换之前和转换之后的结果。
#include <stdio.h>void main(){int a[3][3]={{1,2,3},{4,5,6},{7,8,9}};int b[3][3],i,j;printf("array a:\n");for (i=0;i<=2;i++){for(j=0;j<=2;j++){printf("%5d",a[i][j]);b[j][i]=a[i][j];}printf("\n");}printf("array b:\n");for(i=0;i<=2;i++){for(j=0;j<=2;j++)printf("%5d",b[i][j]);printf("\n");}}9、输入3个学生4门课的成绩,分别用函数实现以下功能:(1)计算每个学生的平均分。
(2)计算每门课的平均分。
(3)找出12个分数中最高分数所对应的学生和课程。
#include <stdio.h>#include <stdlib.h>float s[3][4];int r=0,c=0;void f2(void){int i,j,cour = 0;for(j=0;j<4;j++){for(i=0;i<3;i++)cour+=s[i][j];printf("第%d课的平均分是%d\n",(j+1),cour/3);cour = 0;}}void f3(void){int i,j,high=0;for(j=0;j<4;j++){for(i=0;i<3;i++){if(s[i][j]>high){high=s[i][j];r=i+1;c=j+1;}}printf("最高分是%d,学生是%d,课程是%d\n",high,r,c);r=0;c = 0;high = 0;}}int main(){int i,j,score=0;for(i=0;i<3;i++){printf("enter NO.%d score\n",i+1);for(j=0;j<4;j++){scanf("%f",&s[i][j]);score += s[i][j];}printf("第%d个学生的平均分是%d\n",(i+1),score/4);score = 0;}f2();f3();system("PAUSE");return 0;}10、用函数实现两个变量值的交换,使其在主调函数和被调函数中的值一致,并且返回这两个变量的和以及乘积。
要求用指针变量作为函数参数。
#include<stdio.h>void bian(floaf *a,float*b,float*he,float*ji);void main(){float *c,*d,*e,*f,h,t,k,l;scanf(“%f %f”,&h,&t);c=&h;d=&t;e=&k;f=&l;bian(c,d,e,f);printf(“%5.2f %5.2f %5.2f %5.2f”,h,t,k,l);}void bian(float*a,float*b,float*he,float*ji){float g;g=*a;*a=*b;*b=g;*he=*a+*b;*ji=*a**b;}11、编写函数 int find(int *p,int n,int x),在指针 p 所指的数组中查找整型数 x,如果 x 在数组中,则该函数返回 1,否则返回 0。
n 为数组的大小。
编写主函数测试之。
int finditem(int *p,int n,int x){int j=0,i;for(i=0;(j!=1)&&(i<n);i++){if(*(p+i)==x) j=1;else j=0;}return j;}void main(){ int c[]={12,54,54,12,32,65,45,87,98,1,5,3,6,4,5,8,56,23},i,k;for(i=0;c[i]!='\0';i++);scanf("%d",&k);printf("%d\n",finditem(c, i+1,k));}12、编写并调试程序:功能是打印100以内个位数为6且能被3整除的所有数。