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
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)