C语言程序设计(编程题专项练习)及答案
一、组数,指针,字符串编程题(每小题5 分,共 10分)
1、编写程序:输入一个百分制成绩,打印出五级记分成绩。考试成绩在 90 分或 90 分以上为优秀, 80 ~ 89 分为良好, 70 ~ 79 为中等, 60 ~ 69 为及格,低于 60 分为不及格。
2、编写程序:求一个3*3矩阵对角线元素之和
3、编写程序:在第一个循环中给a数组的前10个数组元素依次赋1,2..9;
在第二个循环中使a数组前10个元素中的值按逆序存放,变成9,8..1;
在最后一个循环中输出逆序存放以后的a数组前10个元素
4、编写程序:判断一个素数能被几个连续的9整除,比如:
请输入一个素数:
13
素数13能整除6个9组成的数整除
5、编写程序:输出 200 ~ 300 之间的所有素数,要求每行输出 8 个素数。
6、编写程序:判断101到200之间的素数。
7、编写程序:猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少。
8、编写程序,使用循环结构输出下列图形:
9、编写程序:假设奖金税率如下(a代表奖金,r代表税率) 500<=a<1000
r=5% 1000<=a<2000 r=8% 2000<=a<3000 r=10% 3000<=a r=15%输入的一个奖金数,求税率和应缴税款以及实得的奖金数(扣除奖金税后)。
10、编写程序:一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?
程序设计c语言11、编写程序:若有数组:int a[2][3] ={{1,2,3},{4,5,6}};
现要将a的行和列的元素互换后存到另一个二维数组b中,并以矩阵形式输出数组b。试编程。
12、编写程序:输出一维数组a中的最小值及其下标
13、起泡法(选择法)对十个数排序
14、编写程序:查n在数组a中最后一次出现的位置
例如:如果a数组中的元素为:[0,5,0,5,6,8,0,4,3,0],当n=5时,程
序的输出结果为:5 is no.3 当n=10时,程序的输出结果应为:10 not found
15、编写程序,将从键盘输入的 10 个整数按升序排列输出。
16、编写程序:出100~n(不大于1000)之间百位数字加十位数字等于个位数
字的所有整数,把这些整数放在数组中,并5个一行输出。
17、编写程序:求出 a 所指数组中最小数 ( 规定最小数不在 a[0] 中 ) ,最
小数和 a[0] 中的数对调。
例如数组中原有的数为: [7 、 10 、 12 、 0 、 3 、 6 、 9 、 11 、
5 、 8]
输出的结果为: [0 、 10 、 12 、 7 、 3 、 6 、 9 、 11 、 5 、 8 ]
18、请编写一个函数proc(),它的功能是:求出1~m(含m) 能被7或11整除的
所有整数放在数组a中,通过n返回这些数的个数。例如,若传给m的值为70,
则程序输出: 7,11, 14,21,22, 28,33,35,42,44,49,55,56,63,66,70 注意:部分源程序给出如下。请勿改动main()函数和其他函数中的任
何内容,仅在函数proc()的花括号中填人所编写的若干语句。试题程序:
#define N 100
void proc(int m,int*a,int*n)
{
...
}
void main()
{
int arr[N],n,k;
system("cls");
proc(70,arr,&n);
for(k=0;k<N;K++)
if((k+1)%20==0) //每行输出20个数
{
printf("%4d",arr[k]);
printf("\n");
}
else
printf("%4d",arr[k]);
printf("\n");
}
19、编写程序:对10个数进行排序。
20、编写程序:求两个正整数m,n之间的非素数之和(包含m和n) 例如: 如果数组m=2,n=20,则程序的输出应为:sum is: 132()
【参考答案】
一、组数,指针,字符串编程题
1、#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <math.h>
void main()
{
int score,t;
printf("Please enter a score:");
do
{
scanf("%d",&score);
}
while(score<0||score>100);
t=score/10;
/
*************found**************/
switch(t)
{
case 10:
case 9:printf(" 优秀 !\n");break;
case 8:printf(" 良好 !\n");break;
case 7:printf(" 中等 !\n");break;
case 6:printf(" 及格 !\n");break;
/*************found**************/
default:printf(" 不及格 !\n");
}
}
2、#include<stdio.h>
#define N 3
int main()
{
int i,j,a[N][N],sum=0;
printf("请输入矩阵(3*3):\n");
for(i=0;i<N;i++)
for(j=0;j<N;j++)
scanf("%d",&a[i][j]);
for(i=0;i<N;i++)
sum+=a[i][i];
printf("对角线之和为:%d\n",sum);
return 0;
}
【解析】利用双重for循环控制输入二维数组,再将a[i][i]累加后输出。
3、#include <stdio.h>
main( )
{
int i,a[10],t;
for(i=0;i<10;i++) a[i]=i+1;
for(i=0;i<5;i++)
{
t=a[i];
a[i]= a[i]=a[9-i];
______=t;
}
for(i=0;i<10;i++) printf("%5d",a[i]);
printf("\n");
}
4、#include<stdio.h>
#include<stdlib.h>
int main()
{
int p,i;
long int sum=9;
printf("请输入一个素数:\n");
scanf("%d",&p);
for(i=1;;i++)
if(sum%p==0)break;
else sum=sum*10+9;
printf("素数%d能整除%d个9组成的数%ld\n",p,i,sum);
return 0;
}

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。