您的当前位置:首页正文

c语言考试试题以及答案

2022-12-25 来源:星星旅游
1. 编程求和1-2+3-4+5-6+…+99-100 #include int main() {

int i,t,s; s=0; t=1;

for(i=1;i<=100;i++) { t=-t; s=s+(-t)*i; }

printf(\"%d\\n\ system(\"pause\"); return 0; }

2.求:1+(1+2)+(1+2+3)+…+(1+2+3+….10) 的和

#include

int main() {

int i,t,s; s=0; t=0;

for(i=1;i<=10;i++) { t=t+i; s=s+t; }

printf(\"%d\\n\ system(\"pause\"); return 0; }

3. 求n的值,其中a是一个不为0的数字,例如2+22+222+2222+22222,其中数字a和n由键盘输入。 #include int main() {

int a,n,i=1,sn=0,tn=0; printf(\"a,n:\");

scanf(\"%d %d\ while(i<=n) {tn=tn+a; sn=sn+tn; a=a*10; i++; }

printf(\"%d\\n\ system(\"pause\"); return 0; }

4. 有一个函数如下: x (x<5) y= 2x+6 (5<=x<15) 2x-6 (x>=15)

输入x的值,计算出相应的y值。 #include int main()

{

int x,y;

printf(\"输入X:\"); scanf(\"%d\ if(x<5) { y=x;

printf(\"x=%3d,y=x=%d\\n\ }

else if(x>=5&&x<15) {y=2*x+6;

printf(\"x=%3d,y=2*x+6=%d\\n\ } else {y=2*x-6;

printf(\"x=%3d,y=2*x-6=%d\\n\ }

system(\"pause\"); return 0; }

5. 某国的税收政策为:1000元以下免税,1000~2000元缴纳5%的税,2000~4000元上税10%,4000元以上按20%交税。试编写程序,输入一个人的收入,计算其需要上缴的税额。 #include int main() {

float a;

scanf(\"%f\ if(a<=1000) {

printf(\"免税\ }

if(a>1000&&a<=2000) {

printf(\"%f\ }

if(a>2000&&a<=4000) {

printf(\"%f\ } else

printf(\"%f\ system(\"pause\"); return 0; }

6. 编程分段统计学生成绩,输入为负数时结束。要求按90-100、80-89、70-79、60-69、60以下五档分别统计各分数段人数 #include int main() {

float score;

int a[6]={0,0,0,0,0,0}; char grade; int i; do{

scanf(\"%f\

switch((int)(score/10)) {case 10:

case 9: a[0]=a[0]+1;break; case 8: a[1]=a[1]+1;break; case 7: a[2]=a[2]+1;break; case 6: a[3]=a[3]+1;break; case 5: case 4: case 3: case 2: case 1:

case 0: a[4]=a[4]+1; }

}while(score>0);

printf(\"90~~100: %d\\n\ printf(\"80~~89: %d\\n\ printf(\"70~~79: %d\\n\ printf(\"60~~69: %d\\n\ printf(\"60一下: %d\\n\ system(\"pause\"); return 0; }

7.某班有45个同学,现在输入所有同学的计算机成绩。编程求最高分、最低分和不及格的人数。 #include #include int main() {

int max(int a[45]); int min(int a[45]); int fail(int a[45]); int i,a[45],Max,Min,Fail; printf(\"请输入成绩:\\n\"); for(i=0;i<45;i++) scanf(\"%d\ printf(\"\\n\"); Max=max(a); Min=min(a); Fail=fail(a);

printf(\"最大值是:%d\\n\ printf(\"最小值是:%d\\n\ printf(\"不及格是:%d\\n\ system(\"PAUSE\"); }

int max(int a[45]) {int i,m;m=a[0]; for(i=0;i<45;i++) {

if(m<=a[i]) m=a[i]; }

return m; }

int min(int a[45]) {int i,m;m=a[0];

for(i=0;i<45;i++) {

if(m>a[i]) m=a[i]; }

return m; }

int fail(int a[45]) {int i,m=0; for(i=0;i<45;i++) {

if(a[i]<60) m=m+1; } return m; }

8.求fibonacci数列的前20项。 #include int main() { int i;

int f[20]={1,1}; for(i=2;i<=20;i++) f[i]=f[i-2]+f[i-1]; for(i=0;i<20;i++) {if(i%5==0) printf(\"\\n\"); printf(\"%12d\ }

printf(\"\\n\"); system(\"pause\"); return 0; }

9.一个数组有20个数组元素,试编程对这些数组元素从大到小排列。

#include int main() {

int a[20]; int i,j,t;

printf(\"输入20个数:\\n\"); for(i=0;i<20;i++) scanf(\"%d\ printf(\"\\n\"); for(j=0;j<19;j++) for(i=0;i<19-j;i++) if(a[i+1] > a[i]) {

t= a[i+1] ; a[i+1] =a[i]; a[i] =t; }

printf(\"输出的顺序数;\\n\"); for(i=0;i<20;i++) printf(\"%d\\n\

printf(\"\\n\"); system(\"PAUSE\"); return 0; }

10. 试编写程序,实现随机产生10个递增的整数,组成一个升序数组。然后从键盘再输入一个整数并把该数插入数组中,使数组仍然有序。 #include #include int main() {

int a[11],i,j,t; scanf(\"%d\ for(i=0;i<10;i++) {

a[i]=rand(); }

for(j=0;j<10;j++) for(i=0;i<10-j;i++) if(a[i]>a[i+1])

{

t=a[i]; a[i]=a[i+1]; a[i+1]=t; }

for(i=0;i<11;i++) printf(\"%d\\n\ system(\"pause\"); return 0; }

11.有一个3×4的矩阵,编程输出最大元素的值,以及其所在的行号和列号。要求:数组里的元素不能用初始化的方式赋值,要从键盘输入。 见c程序设计P139页 #include #include int main() {

int i,j,k,n,row=0,colum=0,max; int a[3][4]; for(k=0;k<3;k++) {for( n=0;n<4;n++) scanf(\"%d\ } max=a[0][0]; for(i=0;i<3;i++) for(j=0;j<4;j++) if(a[i][j]>max) {max=a[i][j]; row=i; colum=j; }

printf(\"max=%d,row=%d,colum=%d\\n\ system(\"pause\");

}

12.编写一个函数,功能是返回一个一维int型数组的最大值。 #include

#include int main() {

int max(int a[10]); int i,a[10],Max;

printf(\"请输入数值:\\n\"); for(i=0;i<10;i++) scanf(\"%d\ printf(\"\\n\"); Max=max(a);

printf(\"最大值是:%d\\n\ system(\"PAUSE\"); }

int max(int a[10]) {int i,m=a[0]; for(i=1;i<10;i++) {

if(mreturn m; }

13.编写判断一个整数是否为素数的函数,在主函数中调用该函数输出100以内的孪生素数(若p与p+2都是素数,则它们是孪生素数)。 #include #include

int prime(int i) {

long j, tmp = sqrt(i)+1; for(j=2;j<=tmp;j++) { if (i%j==0) { return 0; } } return 1; }

int main () {

long n=100; long i;

printf(\"以内100的孪生素数;\\n\"); for (i=2; i<100; i++) if(prime(i)&&prime(i+2)) printf (\"\%2d %2d\\n\ system(\"pause\"); return 0; }

14. 编写程序在一个数组中删除指定下标的元素,要求:删除功能放在一自定义函数中,并用指针变量做函数形参,在主函数中输入数组并输出删除元素后的数组。 #include #include

void ElementDelete(char* p,int c,int d) { int i;

for (int i=d-1; i{

p[i]=p[i+1]; } }

int main(int argc, char *argv[]) {

char a[100]; int n; gets(a); scanf(\"%d\

ElementDelete(a,sizeof(a)/sizeof(a[0]),n); puts(a);

system(\"PAUSE\"); return 0; }

15. 编写一个函数,在此函数中实现把实参传过来的一个字符串按ASCII码降序排列。排序前的字符串和排序后的字符串都在主函数中输入、输出。 #include # include

void in(char str[]) { int m,i,j; char t; m=strlen(str); for(j=0;jstr[i+1]) {

t=str[i]; str[i]=str[i+1]; str[i+1]=t; } } int main() {char str[100]; int j,m;

scanf(\"%s\ m=strlen(str); in(str); printf(\"%s\ system(\"pause\"); return 0; }

因篇幅问题不能全部显示,请点此查看更多更全内容