C语言上机试题及答案

更新时间:2024-01-10 02:31:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

二级C语言上机考试题(第一套)

(共100分)

注意事项:请各位考生在指定工作盘的根目录中建立考试文件夹。考试文件夹的命名规则为“准考证号+考生姓名”,如“41100101 杨君”。考生的所有解答内容都必须存放在考试文件夹中。

1.(35分)编制程序实现合并整数功能。将两个两位的正整数a、b合并成一个正整数c,合并的方式是:将a数的十位和个位数依次放在c数的千位和十位上,b数的十位和个位数依次放在c的百位和个位上(例如:当a=45,b=12时调用该函数后c=4152)。源程序存入test11.c。

2.(35分)下面程序的功能是:先将字符串s中的各字符以正序存放在t串中,然后再将s串中的字符以逆序连接到t串的后边(例如:当s串为”ABCDEF”时,则t串为”ABCDEFFEDCBA”)。请输入程序并填空,源程序存入test2.c。 #include

Void fun(char *s,char *t) { char *p=s; int i= ① ; for(; *p;i++) *t++=*p++; P--;

for(;i>0;i--) *t++= ② ; *t=’\\0’; }

Void main()

{ char s[100],t[200];

printf(“请输入字符串s:\\n”); gets(s); fun(s,t);

printf(“生成的字符串为:%s\\n”,t);

}

3.(30分)下面程序的功能是:从低位开始取出整形变量s中奇位数上的数字,依次构成一

个新数放在整形变量t中,高位任在高位,低位任在低位(例如:当s中的数为8765432时,t中的数为8642)。请输入程序并改正程序中带”*”行中的错误,使它能正确的输出结果。

#include Void main()

{ int s,i=1,s1=1,t=0;

printf(“请输入一个整数:”); scanf(“%d”,s); for(i=1,s1=1;s>0;i++) { if(i%2==0){

t=t*s1+s; s1=s1*10; }

s1=s1*10; }

printf(“输入数据组成的整数为:%d\\n”,t);

}

二级C语言上机考试题(第二套)

(共100分)

注意事项:请各位考生在指定工作盘的根目录中建立考试文件夹。考试文件夹的命名规则为“准考证号+考生姓名”,如“41100101 杨君”。考生的所有解答内容都必须存放在考试文件夹中。

1.(35分)30个人在一家饭馆里吃饭共花了50先令,每个男人花3.5先令,每个女人花2.5先令,每个小孩花1先令,请编程求男人、女人和小孩各有几个人?源程序存入test21.c。 2.(35分)下面程序的功能是:求数组a中偶数的个数和偶数的平均值。请输入程序并填空,源程序存入test22.c。 #include void main() {

int a[10]={1,2,3,4,5,6,7,8,9,10}; int k,s,i; double ave;

for(k=s=i=0;i<10;i++) {

if(a[i]%2!=0)

① ; s+=a[i]; k++;

} if( ② ) {

ave=(double)s/k;

printf(\

} }

3.(30分)下面程序的功能是:计算[100,,1000]范围内有多少个其各位数字之和是5的数。请输入程序并改正程序中带”*”的行中的错误,使它能够正确的输出结果。源程序存入test23.c。

#include void main()

{ int i,s,k,count=0; for(i=100;i<1000;i++) { s=0; k=i; }

printf(\}

while(k) * { s=s+k/10; * k=k; } if(s!=5) * break; else count++;

二级C语言上机考试题(第三套)

(共100分)

注意事项:请各位考生在指定工作盘的根目录中建立考试文件夹。考试文件夹的命名规则为“准考证号+考生姓名”,如“41100101 杨君”。考生的所有解答内容都必须存放在考试文件夹中。

1.(35分)编程序求解爱因斯坦阶梯问题。(爱因斯坦阶梯问题:设有一阶梯,每步垮2阶,最后余1阶;每步垮3阶,最后余2阶;每步垮5阶,最后余4阶;每步垮6阶,最后余5阶;只有每步垮7阶时,正好到阶梯顶。问共有多少部阶梯?),源程序存入test31.c。 2.(35分)函数IsPrime的功能是判断从参数表中带入的整数是否为素数,是则返回1,不是则返回0.下面程序的功能是利用函数IsPrime计算3到100之间的所有素数之和。请输入程序并填空,源程序存入test32.c。 #include void main()

{ int IsPrime(int n); int n,sum=0;

for(n=3;n<=100;n+=2) if( ① ) }

int IsPrime(int n) { int i;

for(i=2;i<=n-1;i++) }

3.(30分)下面程序的功能是:统计指定文本文件mydata.txt中数字字符的个数。请输入程序并改正程序中带”*”中的错误,使它能够正确的输出结果。源程序存入test33.c. #include

if( ② ){

return 0; sum+=n;

printf(\

}else return 1;

void main() { FILE *fp; char c; * int count;

* if((fp=fopen(‘mydata.txt’,’r’))==NULL) { printf(\ return; }

while((c=fgetc(fp))!=EOF) * if(c>='0'||c<='9')

count++;

printf(\文件中数字字符的个数:%d\\n\ }

附:答案

第一套

1.编程

#include

void fun(int a,int b,long *c) {

int a1,a10,b1,b10; } main()

{ int a,b;long c; printf(\ } 2.填空 ① 0 ② *p-- 3.改错

scanf(“%d”,s);改为 scanf(“%d”,&s); if(i%2==0)改为if(i%2!=0) t=t*s1+s;改为t=t+s*s1;

scanf(\ fun(a,b,&c);

printf(\a1=a; a10=a/10; b1=b; b10=b/10;

*c=a10*1000+b10*100+a1*10+b1;

第二套

1.编程

#include void main()

{

int men=0,women,children; while(men<=14) {

women=0; } } 2.填空 ① continue ②k!=0 3.改错

s=s+k/10;改为s=s+k; k=k;改为k=k/10; break;改为continue;

while(women<=20) {

children=30-men-women;

if(3.5*men+2.5*women+1*children==50.0)

printf(\男人%d个,女人%d个,小孩%d个\\n\ women++; } men++;

第三套

1.编程

#include main() { int x=7;

while(!(x%2==1&&x%3==2&&x%5==4&&x%6==5)) { x=x+7;

}

printf(\} 2.填空 ① 1 ② n%i==0 3.改错

int count;改为int count=0;

fopen(‘mydata.txt’,’r’)改为fopen(”mydata.txt” ,”r”) if(c>=’0’||c<=’9’)改为 if(c>=’0’&c<=’9’)

本文来源:https://www.bwwdw.com/article/4mzo.html

Top