好文档 - 专业文书写作范文服务资料分享网站

C语言程序设计试题及答案(三)

天下 分享 时间: 加入收藏 我要投稿 点赞

#include main() {

int i,j,k,l=0;

for (i = 0; i<=20;i++)

for (j =0; j<=50; j++) {

k= __(100-i-2*j)/5__; if (__i+j*2+k*5==100__){

printf(“- - -”,i,j,k); l = l + 1;

if (l%5==0) printf(“\\n”); } } }

24、输出1-100之间满足每位数的乘积大于每位数的和的数 #include main() {

int n,k=1,s=0,m;

for (n=1; n<=100; n++) { k=1; s=0;

__m=n__;

while (__m>0__) { k *=m; s+=m; ___m/=10__; }

if (k>s) printf(“%d”,n); }

25、从3个红球、5个白球、6个黑球中任意取出8个球,且其中必须有白球,输出所有可能的方案。

#include main() {

int i,j,k;

for (i=0;i<=3;i++)

for (__j=1__; j<=5;j++) { k = 8 – i – j; if (__k>=0__)

printf(“= = =\\n”,i,j,k); } }

26、以下程序的功能是:判断一个四位数是否满足这样的条件:它的9倍刚好是它的反序数。反序数是指整数各个位上的数字逆序所形成的整数。请完成程序的填空。 #include main(){

int i,a,b,c,d,m;

for(i=1000;;i++){

a=__i__; b=i/10; c=i/100; d=i/1000;

}

m=__a*1000+b*100+c*10+d__; if(___m==i*9__) __break__; }

printf(\

27、以下程序完成两整数的交换。 #include main(){ int a,b;

printf(“请依次输入a,b的值:”); scanf(“%d,%d”, __&a,&b__); a=a+b; __b=a-b__; __a=a-b__;

printf(“交换后:a=%d,b=%d”,a,b); }

28、以下程序的功能是判断输入的年份是否为闰年,若是则输出”yes”,否则输出”No”。 #include main(){

int year ;

scanf(“%d”,&year);

if (__year@0==0||year%4==0&&year0!=0__) printf(“yes”); else printf(“No”); }

29、以下程序利用冒泡排序法对输入的10个数进行排序。 #include #define N 10 void main() { int a[N]; int i,j,t;

printf(″input 10 numbers :\\n″); for (i=0;i

for(j=0;j

for(i=0;i<__N-j-1__;i++) if (__a[i]>a[i+1]__) { t=a[i]; a[i]=a[i+1];

a[i+1]=t; }

printf(″the sorted numbers :\\n″); for(i=0;i

printf(″%d ″,a[i]); printf(″\\n″); }

30、用筛法求100之内的素数。筛法素数的思想是:1、取最小的数2,并声明它是素数,同时筛去它及它的倍数。2、取未筛去数中最小的数,并声明它是素数,同时筛去它及它的倍数。3、重复步骤2至筛中无数,得到所有的素数。 #include

#define M 100 // 范围

#define N ((M+1)/2) // 奇数的个数 void main( ) {

int i,j,a[N]; a[0] = 2;

for(i=1;i

for(i=1;i

for(j=i+1;j

if(__a[j]%a[i]==0__) /* 倍数时置零筛去 */ a[j]=0;

printf(\ for(i=0,j=0;i

printf(\

if((++j)==0) /* 十个数换行 */ printf(\ } }

getch(); }

31、用选择法对10个整数从小到大排序。 #include #define N 10 main(){

int a[N],i,j,k,t;

for (i=0;i

for(j=i+1;ja[k]__){

t=a[k]; a[k]=a[i];a[i]=t; } }

for(i=0;i

32、求一个N×N矩阵主对角线元素、次对角线之和。 #define N 3

#include main() {

int i=0,j=0,a[N][N],s1=0,s2=0; for(i=0;i

scanf(\ for(i=0;i

for(j=0;j

if(__i==j__) s1+=a[i][j]; //主对角线 if(__i+j==N-1__) s2+=a[i][j]; //次对角线 }

printf(\}

33、已有一个已排好的数组今输入一个数要求按原来排序的规律将它插入数组中。 #define N 10

#include main() {

int i,t,a[N]={1,7,8,17,23,24,59,62,101}; scanf(\

for(i=N-2;i>0;i--){

if(t

a[i+1]= __t__;

for(i=0;i<10;i++) printf(\}

34、将一个数组的值按逆序重新存放,例如,原来顺序为:8,6,5,4,1。要求改为:1,4,5,6,8。

#include #define N 11 main(){

int i,a[N],tmp; for(i=0;i

scanf(\for(i=0; __i

a[i]= __a[N-i-1]__; __a[N-i-1]__=tmp;}

for(i=0;i

printf(\}

35、打印“魔方阵”,所谓魔方阵是指这样的方阵,它的每一行、每一列和对角线之和均相等。例如,三阶魔方阵为 8 1 6 3 5 7 4 9 2

要求打印出由1~n2的自然数构成的魔方阵。 #define N 3

#include main( ) {

int i,j,k,a[N][N];

/* 初始化魔方阵——置为0,作为有无数字的判断*/ for(i=0;i

a[0][j]=1; /* 存放第一个数字 */ /* 存放2——n*n */

for(k=2;k<=N*N;k++) {

i--; // 数存放前一数行数减1、列数加1

__j+=1__;

if (i < 0 && j > N-1) {//到达右上角的位置

i=i+2; j--; } else { if(i<0)

i=__n-1__; //上一数的行数为0,下一数的行数为n-1 if(j>N-1)

j=0; //上一数的列数为n-1时,下一数的列数为0 }

if(__a[i][j]!=0__){ //若下一数的位置上已经有数字, //则下一数存到上一个数行数加1的位置

i=(i+2)%N;

j=(j -1 + N)%N; } }

a[i][j]= __k__; // 填数

for(i=0;i

for(j=0;j

printf(\ printf(\}

C语言程序设计试题及答案(三)

#includemain(){inti,j,k,l=0;for(i=0;i<=20;i++)for(j=0;j<=50;j++){k=__(100-i-2*j)/5__;if(__i+j*2+k*5==100__){
推荐度:
点击下载文档文档为doc格式
5a4pp6n1i88njyy26yqz6tzp834d3b018si
领取福利

微信扫码领取福利

微信扫码分享