实验三
C语言上机考试题(第一套 共100分)
1.(35分)实现判断一个正整数是否为素数的函数首部为 int isprime(int x).当x是素数时函数返回1,否则返回0。要求编制该函数并用已给出的主函数进行测试。源程序存入test11.c中。
#include
{ int isprime(int x); int a;
printf(“Input the number:\\n”); scanf(“%d”,&a); if(isprime(a))
printf(“The %d is a prime.\\n”); else
printf(“The %d is not a prime.\\n”); }
int isprime(int x)
{ 要求编制的函数体 }
2.(35分)下面程序的功能是将十进制数转换为二进制数输出。请输入并完善程序,要求源程序存入test12.c中。
#include
{ int convert(int a); int a,e[10],c,j=0; scanf(“%d”,&a); while(a!=0)
{ c= ① ; a/=2; e[j]=c; j++;
}
for( ② ) printf(“%d”,e[j-1]); }
int convert(int a) { int c;
c= ③ ; return c; }
3.(30分)以下程序的功能是:从键盘输入一个给定的字符串和一个给定的字符并通过调用函数chrn实现印出给定的字符在给定的字符串中出现的次数。其中函数的原型说明为int chrn(char *s,char c);,其功能是测试c在s中出现的次数。程序中标有*号的行有错,请改正并将改正后的源程序存入test13.c中。
#include
{ int chrn(char *s,char c); char str[80],ch; gets(str);
ch=getchar();
* printf(“%d\\n”,chrn(s,c));
}
int chrn(char *s,char c) { int count=0; while(*s) * if(*s++=c) count++; * return 0;
}
课外(补充)
4. 编程序实现功能:试编一程序计算并输出
SUM=(1+2+……+N)+(1+2+……(N+1))+……+(1+2+……+M)
M和N由键盘输入,其中N
void main()
{ int fun(int n); long sum=0; int k,n,m;
scanf(“%d,%d”,&m,&n); for(k=n;k<=m;k++) sum=sum+fun(k); printf(“%d”,sum); }
int fun(int n) {
要求编制的函数体 }
5. 编写一个程序求出200-300之间满足这样条件的数:其各位数之积为42,且各位数之和为12。请输入并完善程序,要求源文件存入test22.c中。 #include
{ int m,n,r,sum1,sum2;
for(n=200; ① ;n++)
{ m=n;sum1=0;sum2=0; do
{ r=m;
sum1= ② ; sum2=sum2*r; m=m/10; }while(m!=0);
if(sum1==12&&sum2== ③ ) printf(“%d”,n); }
}
6.下面程序的功能是:从键盘输入一个给定的字符串并通过调用函数mystrlen 实现印出给定的字符的长度。其中函数原型说明为int mystrlen(char *s);,其功能是测试字符串s的长度。程序中标有*号的行有错,请改正并将改正后的源程序存入test23.c中。 #include
{ int mystrlen(char *s); char str[80]; gets(str);
* printf(“%d\\n”,mystrlen(*s)); }
int mystrlen(char *s) { int len=0; * while(s++) len++; * return 0; }