欢迎来到天天文库
浏览记录
ID:41773294
大小:33.00 KB
页数:3页
时间:2019-09-01
《2014年计算机二级考试C语言考前预测上机试题2》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、2014年计算机二级考试C语言考前预测上机试题(2)一、程序填空题 请补充main()函数,该函数的功能是:输入两个正整数numl和num2.求这两个数的最大公约数和最小公倍数。 例如,若输入的两个正整数为12,4,则它们的最大公约数为12,最小公倍数为4。 注意:部分源程序给出如下。 请勿改动main()函数和其他函数中的任何内容,仅在main()函数的横线上填入所编写的若干表达式或语句。 试题程序 #include #include void main() { int a,b,num1,num2,t
2、; system("CLS"); printf ("\nInput two numbers:\n"); scanf("%d,%d",&num1,&num2); if(num1 { a==num2; b=num1: } else { a==num1; b=num2; } while(【1】) { t= 【2】 a=b; b=t; } printf("greatest common divis
3、or: %d\n",a); printf("least common multiple: %d\n",【3】); }二、程序改错题 下列给定程序中函数proc的功能是:取出长整型变量s 中偶数位上的数,依次构成一个新数放在t中。例如,当s 中的数为123456789时,t中的数为2468。请修改程序中的 错误,使它能得出正确的结果。 注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。 试题程序: #include #include #include //**
4、**found**** void proc(long S,long t) { long s1=10; s/=l0; *t=s%10; //****found**** while(s<0) { s=s/100; *t=s%10*s1+*t; s1=s1*10: } } void main() { long s,t; system("CLS"); printf("knPlease enter s:
5、"); scanf("%1d",&s); proc(s,&t); printf("The result is:%1d",t); } 三、程序设计题 请编写函数proc(),其功能是:将str所指字符串中除下标为偶数,同时ASCII码值为奇数的字符外,其余的字符都删除,串中剩余字符所形成的一个新串放在t所指的数组中。例如,若str所指字符串中的内容为ABCDEFG12345,其中字符8的ASCII码值为偶数,所在元素的下标为奇数,因此必须删除;而字符A的ASCII码值为奇数,所在数组中的下标为偶数,因
6、此不应当删除。依此类推,最后t所指的数组中的内容应是ACEG。 注意:部分源程序给出如下。 请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的花括号中填入所写的若干语句。 试题程序: #include #include #include #include void proc(char*str,char t[]) { } void main() { char str[100],t[100]; system("CLS"): printf("\nP
7、lease enter string str:"); scanf("%s",str); proc(str,t); printf("\nThe result is:%s\n",t); } 上机考试试题答案与解析 一、程序填空题 【1】b!=0【2】a%b[3]numl*num2/a 【解析】由程序可知,变量b中存放两个正整数中较小 的那个数,while循环求两个正整数的公约数。因此【1】填“b!=0”.【2】填“a%b”;【3】处是求两个正整数最小公倍数的表达式,因此【3】填“num1*num2/a”
8、。 二、程序改错题 (1)错误:void proc(long s,long t) 正确:void proc(l
此文档下载收益归作者所有