C语言编程测试题(含答案)
《C语言程序设计》阶段性考核(90分钟)学号__________ 姓名_________ 得分_________
程序设计题(本大题共7小题,选5题完成,3、5题必选,共100分)
注意:将在vc++中调试通过的代码复制到每题“程序代码”下面,然后提交本文档即可,文档命名为“姓名.doc”,如张文.doc
1、求出 10 到100内能同时被
2、
3、7整除的数,并输出。
程序代码:
#include"stdio.h"
void main()
{//求出 10 到100内能同时被2、3、7整除的数,并输出
int i;
for(i=10;i<=100;i++)
{if(i%2==0&&i&3==0&&i%7==0)
printf("%d ",i);
}
}
2、输出Fibonacci 数列1,1, 2,3, 5, 8, 13……前42个数,并以每行5个数方式输出。程序代码:
#include"stdio.h"
void main()
{
//输出Fibonacci 数列1,1, 2,3, 5, 8, 13……前42个数,并以每行5个数方式输出。long int f[42];
int i;
f[0]=f[1]=1;
for(i=2;i<42;i++)
f[i]=f[i-1]+f[i-2];
for(i=0;i<42;i++)
{if(i%5==0) printf("\n");
printf("%10d",f[i]);
}
}
3、编写程序,输入一个3×3的矩阵,求两个对角线元素中的最大值
程序代码:
#include"stdio.h"
void main()
{
//编写程序,输入一个3×3的矩阵,求两个对角线元素中的最大值
int a[3][3];
int i,j,max;
/*
a[0][0] a[0][1] a[0][2] 1 2 3
a[1][0] a[1][1] a[1][2] 4 5 6
a[2][0] a[2][1] a[2][2] 7 8 9
*/
//二重循环输入数组元素
printf("请输入数组元素\n");
for(i=0;i<3;i++)
for(j=0;j<3;j++)
{
scanf("%d",&a[i][j]);
}
//输出二维数组
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
{
printf("%d ",a[i][j]);
}
printf("\n");
}
//求二维数组对角线最大值,i=j or i+j=2
max=a[0][0];
for(i=0;i<3;i++)
for(j=0;j<3;j++)
{if(i==j||i+j==2)
{if(a[i][j]>max) max=a[i][j]; }
}
//输出最大值
printf("max=%d\n",max);
}
4、编写程序,输入12个数,按照从后向前的顺序依次找出并输出其中能被7整除的所有整数以及这些整数的和,在屏幕上输出
程序代码:
#include"stdio.h"
void main()
{//4、编写程序,输入12个数,按照从后向前的顺序依次找出并输出其中能被7整除的所有整数以及这些整数的和,在屏幕上输出
int a[12];
printf("请输入数组元素\n");
for(i=0;i<12;i++)
scanf("%d",&a[i]);
//注意,从后向前找,下标递减
for(i=11;i>=0;i--)
if(i%7==0)
{printf("%d ",a[i]);
sum=sum+a[i];
}
printf("\n");
printf("sum=%d\n",sum);
}
5、编写程序打印以下图形:(必须使用循环结构)
1 2
3 4 5
6 7 8 9
程序代码:
#include"stdio.h"
void main()
{int a[4][4];
int k=0,i,j;
//输入数组元素
printf("请输入数组:\n");
for(i=0;i<4;i++)
for(j=0;j<4;j++)
{scanf("%d",&a[i][j]);}
//变量k累加赋值
for(i=0;i<4;i++)
for(j=0;j<=i;j++)
{
a[i][j]=k++;//等同于a[i][j]=k; k=k+1;
}
//输出数组
for(i=0;i<4;i++)
{for(j=0;j<=i;j++)
{printf("%d ",a[i][j]);}
printf("\n");
}
}
6、已知字符串char s[50]=”Iamstudent”,请编写程序将字符a插入到student之前,结果为“Iamastudent”,程序框架为:
Void main()
{ char s[50]=”Iamstudent”;
………..
}
程序代码:
#include"stdio.h"
void main()
{//6、已知字符串char s[50]="Iamstudent",请编写程序将字符a插入到student之前,结果为"Iamastudent"
char s[50]="Iamstudent";
int i;
//字符串实际长度为10,数组下标为0~9的存储
for(i=strlen(s)-1;s[i]!='s';i--)
s[i+1]=s[i];//每个字符向后移一个
s[i+1]=s[i];//'s'向后一定一个,‘s’的位置用来存放‘a’
s[i]='a';
printf("%s\n",s);
}
7、设计程序计算以下式子的值
1+(1+2)+(1+2+3)+(1+2+3+4)+。。。。+(1+2+3+。。。+99+100)
程序代码:
#include"stdio.h"
void main()
{
//设计程序计算以下式子的值
//(0+1)+(1+2)+(1+2+3)+(1+2+3+4)+。。。。+(1+2+3+。。。+99+100)int i,j,sum1,sum=0;
for(i=1;i<=100;i++)//可以将100改成5测试结果的正确性,i表示1到100项
{
sum1=0;
for(j=1;j<=i;j++)
sum1=sum1+j;//求每一项的累加和
sum=sum+sum1;//求总和,在每一项求和之后
}
printf("%d\n",sum);
}