C语言程序设计试题

C语言程序设计试题,第1张

1.请编程序打印出一张乘法“九九表”。表的样式如下:

1 2 3 4 5 6 7 8 9

2 4 6 8 10 12 14 16 18

3 6 9 12 15 18 21 24 27

4 8 12 16 20 24 28 32 36

5 10 15 20 25 30 35 40 45

6 12 18 24 30 36 42 48 54

7 14 21 28 35 42 49 56 63

8 16 24 32 40 48 56 64 72

9 18 27 36 45 54 63 72 81

2.编程序把从键盘输入的英文短文作为一个字符串(长度不超过30),把短文

中每个单词的首字母改成大写,(原输入可以是大写),输出转换后的字符串。

3.查找长度为10的整型数组,打印其中整数5出现的次数,及每个整数5对应的数组元下标,打印的结果用逗号隔开。若数组中没有5,也要报告“ther is not number 5”。(数组各元从键盘输入)

4.请用循环结构编程打印出如下字符矩阵

A B C D E Z

Z A B C D E

E Z A B C D

D E Z A B C

C D E Z A B

B C D E Z A

5.请编程计算并输出整数矩阵周边各元之和,矩阵的维数为7×4。(矩阵各元从

键盘输入)

6.编一个函数void merger(int a[], int b[], int c[]), 其功能是归并。把两个递增的整型数组a和b, 归并成递增数组c。再编一个主函数,输入两个递增数组(一个长度为5,另一个长度为9),调用merger函数,打印归并后的结果。

7.编程打印所有各位数的立方和等于该整数的三位数。

8.编程从键盘输入一字符串存放在字符型数组s中,将s中的子字符串”shu”都找到,并输出各子串起始的下标位置。若s中不存在”shu”,也要报告“there is not string shu”。设字符串s有效长度小于40。

9.编程将一个正整数(小于1000)表示成1和质因子的连乘积。如:输入45,输出45=1*3*3*5。

10.编程计算方程 的正整数解,并输出。

11.中国有句俗语“三天打鱼两天晒网”,某人从03年1月1日起三天打鱼两天晒网,编程计算某月某日,他在打鱼还是在晒网。某月某日从键盘输入,打鱼则输出1,晒网则输出0。

12.从键盘输入10名学生的成绩,显示与平均成绩最接近的三个成绩。

程序设计基础(C语言)水平测试考核(参考答案)

1.

/*multiply-table */

main()

{ int i,j

for(i=1i<10i++)

{ for(j=1j<10j++) printf("%4d",i*j)

printf("\n")

}

}

2.

/*capitalization of prefix*/

main()

{ char a[80]

int i

gets(a)

for(i=0a[i]i++)

if((i==0||a[i-1]==' ')&&(a[i]>='a'&&a[i]<='z')) a[i]=a[i]-32

puts(a)

}

3.

/*search number 10*/

main()

{ int a[10],i,c=0

for(i=0i<10i++) scanf("%d",&a[i])

for(i=0i<10i++)

if(a[i]==5)

{ c++ printf("%d,",i)

}

if(c==0) printf("\nThere is not number 5.\n")

else printf("%d\n",c)

}

4.

/*characters matrix*/

#define N 6

void gosub(char a[],int n)

{ char t

int i

t=a[n]

for(i=ni>0i--)

a[i]=a[i-1]

a[0]=t

}

1、以下程序用来检查二维数组是否对称(即:对所有i,j都有a[i][j]=a[j][i])。

#include <stdio.h>

void main(void)

{

int a[4][4]={1,2,3,4, 2,2,5,6, 3,5,3,7, 8,6,7,4}

int i, j, found=0

for(j=0j<4j++){

for(i=0i<4i++)

if (a[i][j]!=a[j][i] ) {

found= 1

break

}

if(found) break

}

if(found) printf("不对称\n")

else printf("对称\n")

}

2、下面程序的功能是:将字符数组a中下标值为偶数的元素从小到大排列,其它元素不变。

#include <stdio.h>

#include <string.h>

void main(void)

{

char a[]="clanguage",t

int i, j, k

k = strlen(a)

for (i=0i<=k-2i+=2)

for (j=i+2j<=k j+=2 )

if ( a[i]>a[j] ) {

t=a[i]a[i]=a[j]a[j]=t

}

puts(a)

printf("\n")

}

3、以下程序中用户由键盘输入一个文件名,然后输入一串字符(用#结束输入)存放到此文件文件中形成文本文件,并将字符的个数写到文件尾部。

#include <stdio.h>

void main(void)

{

FILE *fp;

char ch,fname[32]; int count=0;

printf("Input the filename :");scanf("%s",fname);

if ((fp=fopen( fname ,"w+"))==NULL) {

printf("Can't open file:%s \n",fname);

exit(0);

}

printf("Enter data:\n");

while ((ch=getchar())!="#") {

fputc(ch,fp);

count++;

}

fprintf( length(ch) ,"\n%d\n",count);

fclose(fp);

}

4、以下程序求a数组中的所有素数的和,函数isprime用来判断自变量是否为素数。素数是只能被1和本身整除且大于1的自然数。

#include <stdio.h>

int isprime(int)

void main(void)

{

int i,a[10],*p=a,sum=0

printf("Enter 10 num:\n")

for (i=0i<10i + + ) scanf("%d",&a[i])

for (i=0i<10i + + )

if (isprime(*(p+i )) == 1) {

printf("%d",*(a+i))

sum += *(a+i)

}

printf("\nThe sum=%d\n",sum)

}

int isprime(int x)

{

int i

for (i=2i<=x/2i + + )

if (x%i = = 0) return (0)

}

1 x = 1

x = 2

x = 3

2 1 2 4 5 6 0 0 0 0 0

1 2 3 4 5 6 0 0 0 0

3 CDG

4 80,-20


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/7762216.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-09
下一篇 2023-04-09

发表评论

登录后才能评论

评论列表(0条)

保存