技能培训专题:系统测试题2
以下程序的功能是:将输入的正整数按逆序输出。例如:若输入 135 则输出 531 。请填空。
#include <stdio.h>
main()
{ int n,s;
printf("Enter a number : "); scanf("%d",&n);
printf("Output: ");
do
{ s=n%10; printf("%d",s); 【 10 】 ; }
while(n!=0);
printf("\n");
}
答案 n/=10 或 n=n/10
解析:每次循环把 n 除以 10 所得的商赋给 n.
对输入一个整数进行判断,若是偶数,输出even,否则输出odd,在子函数fun2功能是判定整数是否为偶数,若是偶数,返回1,否则返回0int fun2(int x){if(x%2==0);return 0;}main(){int n;scanf("%d",&n);ifprintf("even\n");else printf(odd\n");}
依据题目的条件,如果整数是偶数,就返回1,返回值语句为return 1.通过返回值,我们能够知道整数是偶数还是奇数,从而进行相应的输出。
下列程序的输出结果是( )。
#include<stdio.h>
VOid p(int *x)
{ printf("%d",++*x);
}
void main()
{ int y=3;
p(&y);
}
A.3
B.4
C.2
D.5
解析:本题考查函数调用时的参数传递。在函数调用时,形参是指向实参的指针变量,则printf的执行结果为3+1=4。
下面程序的运行结果为
#include<iostream.h>
void swap(int &a, int b)
{
int temp;
temp=a++;
a=b;
b=temp;
}
void main( )
int a=2,b=3;
swap(a, b) ;
cout < < a < <"," < < b < < endl;
}
A.2,3
B.3,2
C.2,2
D.3,3
解析:本题考查的是引用调用,因为函数swap引用调用参数a,所以在swap函数中a的变化会改变主函数中a的值,即a自加1,但b的值并未改变。
下列程序的功能是输入一个整数,判断是否是素数,若为素数输出1,否则输出0,请填空。
main()
{int i, x, y=1;
scanf("%d", &x);
for(i=2; i<=x/2; i++)
if【14】{ y=0; break;}
printf("%d\n", y);
}
(x%i==0)
系统测试题21.功能:输入整数a和b,交换a和b后输出。#include void main() int a,b,temp; printf(输入整数a,b:); scanf(%d%d,&a,&b); temp=a;/*SPACE*/ 【?】;/*SPACE*/ 【?】; printf(a=%d b=%dn,a,b); 2.题目:求出 -10 到 30 之内能被 7 或 11 整除,但不能同时被 7 或 11 整除的所有整数。 例如:输出-7,7,11,14,21,22,28,。#include #include main() int i;/*SPACE*/ 【?】(i=-10;i=30; i+) /*SPACE*/ if(i%7=0 | i%11=0) 【?】 i%77!=0) /*SPACE*/ printf(【?】,i); 3.请补充main函数,该函数的功能是求方程ax*x+bx+c=0的两个实数根。方程的系数a、b、c从键盘输入,如果判别式(disc=b*b-4ac)小于0,则要求重新输入a、b、c的值。例如:当a=1,b=2,c=1时,方程的两个根分别是x1=-1.00, x2=-1.00。注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun()的横线上填入所编写的若干表达式或语句。试题程序:#include #include #include void main() float a,b,c, disc,x1,x2; system(CLS); do printf(Input a,b,c:); scanf(%f,%f,%f,&a,&b,&c); disc=b*b-4*a*c; if(disc0) printf(disc=%fn Input again!n,disc); /*SPACE*/ while(【?】); printf(*the result*n);/*SPACE*/ x1=【?】;/*SPACE*/ x2=【?】; printf(nx1=%6.2fnx2=%6.2fn,x1,x2);4.题目:从键盘键盘输入3个整数,然后找出最大的数并输出。 例如:输入12,45,43, 输出 三个数是:12,45,43.最大数是:45.。#include #include main()/*SPACE*/ 【?】 a, b, c, max; printf(请输入三个整数:n); scanf(%d,%d,%d,&a, &b, &c); printf(三个数是:%d,%d,%d., a, b, c);/*SPACE*/ if (a b) 【?】; else max=b; /*SPACE*/ if (【?】) max=c; printf(最大数是:%d., max);5.给定程序中,程序的功能是:输出100以内能被3整除且个位数为6的所有正整数。请填空。#include stdio.hvoid main() int i,j;/*SPACE*/ for(i=0;【?】; i+) j=i*10+6;/*SPACE*/ if(【?】) continue; printf(%d ,j); 6.功能:下面程序的功能是用do-while语句求1至1000之间满足用3除余2;且用5除余3的数,且一行只打印五个数。#include main() int i=1,j=0; do/*SPACE*/ if(【?】) printf(%4d,i); j=j+1;/*SPACE*/ if(【?】) printf(n); i=i+1; while(i1000);7.题目:下列程序的功能为:输出100以内能被4整除且个位数为8的所有整数; 请填写适当的符号或语句,使程序实现其功能。#include main() int i,j;/*SPACE*/ for(i=0;【?】; i+) j=i*10+8;/*SPACE*/ if ( 【?】) /*SPACE*/ 【?】; printf(%d,j); 8.题目:计算100-1000之间有多少个数,其各位数字之和是5#includevoid main() int i,s,k,count=0; for(i=100;i1000;i+) s=0; k=i;/*SPACE*/ while(【?】) s=s+k%10;/*SPACE*/ k=【?】; if(s!=5)/*SPACE*/
下列给定程序中,函数fun()的功能是:实现两个整数的交换。例如给a和b分别输入60和65,输出为:a=65 b=60
请改正程序中的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。
试题程序;
include<stdio.h>
include <conio.h>
/*************found**************/
void fun(int a,b)
{ int t;
/*************found**************/
t=b;b=a;a=t;
}
main()
{ int a,b;
clrscr();
printf("Enter a, b: "); scanf("%d%d",
&a,&b);
fun(&a, &b);
printf("a=%d b=%d\n ", a,b);
}
(1)错误:void fun(int a,b) 正确:void fun(int *a,int *b) (2) 错误:t=b;b=a;a=t; 正确;t=*b;*b=*a;*a=t; 解析:本题考查指针变量做函数参数。采用一般变量做参数,不能改变实参的值,采用指针变量作为参数则能够改变实参的值。主函数中fun()的调用方式说明fun()函数的参数应当为指针类型。另外,值得一提的是“交换法则”,这题的错误比较明显,如果程序段中有隐蔽的交换错误,一般不容易发现,希望学习者引起注意。
下列程序的输出结果是( )。 #include<stdio.h> void p(int *x) { printf("%d",++*x); } void main() { int y=3; p(&y); }
A.3
B.4
C.2
D.5
解析:本题考查函数调用时的参数传递。在函数调用时,形参是指向实参的指针变量,则printf的执行结果为3+1=4。
以下程序的输出结果是( )。
include<stdio.h>
void fun(int x)
{ if(x/2>0)fun(x/2);
printf("%d",x);
}
main()
{fun(3);printf("\n");
}
13 解析:函数fun是一个递归函数。执行fun(3);,x=3,x/2=1>0,又调用f(1),此时,x=1,x/2=0,不满足继续递归调用的条件,输出1,返回到fun(3)中,输出3。所以本题的输出结果为13。
请编写一个函数void fun(int m, int k, int xx[]),该函数的功能是将大于整数m且紧靠m的k个非素数存入所指的数组中。
例如,若输入15,5,则应输出16,18,20,21,22。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。
试题程序:
include<conio.h>
include<stdio.h>
void fun(int m,int k,int xx[])
{
}
main()
{
int m,n,zz[1000];
clrscr();
printf("\nPlease enter two integers:");
scanf("%d%d",&m,&n);
fun(m,n,zz);
for(m=0;m<n;m++)
printf("%d",zz[m]);
printf("\n");
}
void fun(int m, int k, int xx[]) { int i,j,n; for(i=m+1,n=0;nk;i++) /*找大于m的非素数,循环k次,即找出紧靠m的k个非素数*/ for(j=2;ji;j++) /*判断一个数是否为素数*/ if(i%j==0) { xx[n++]=i; /*如果不是素数,放入数组xx中*/ break; /*并跳出本层循环,判断下一个数*/ } } 解析:本题只要掌握了判断非素数和素数的算法即不难完成了,其实程序缺少部分也正是这部分。
请补充main函数,该函数的功能是:从键盘输入一组整数,使用条件表达式找出最大的整数。当输入的整数为0时结束。
例如,输入1,2,3,5,4,0时,最大的数为5。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在 main函数的横线上填入所编写出的若干表达式或语句。
试题程序:
include<stdio.h>
include<conio.h>
define N 100
main()
{
int num[N];
int i=-1;
int max=0;
clrscr();
printf("\nInput integer number:\n");
do
{
i++;
printf("num[%d]=",i);
scanf("%d",【 】);
max=【 】num[i]:max;
}while (【 】);
printf("max=%dkn",max);
}
&num[i] maxnum[i]? num[i]!=0 解析:第一空:注意掌握标准输入函数scanf()的调用格式,输入参数列表中变量前面要使用求址运算符&。第二空:注意掌握条件表达式的用法,当输入的数比最大值大时,则认为此输入的数为最大值,否则最大值不变。第三空:题目要求输入的整数以0结束,所以,当输入的数不为0时,继续do—while循环,否则终止循环。
相关考题:
- 对于人格测试的结果,我们应该( )。A.无所谓B.坚信不移,并作为行事的标准C.结合不同的理论,辩证地看待D.置之不理,完全不信
- 《论持久战》一书发表于1945年
- 银行发生现金长款时,经查找确实无法归还,经批准坐银行收益处理,通过其他业务收入核算。
- 形位公差带形状是距离为公差值t的两平行平面内区域的有()A.径向全跳动B.端面全跳动C.平面度D.直线度
- ( 难度:中等)Hive支持哪些压缩格式A.gzipB.mp4C.snappyD.rar
- “转移”这种自我防御机制的含义是( )A.成年人遇到难过的事或遭受打击时心理和生理退回到较早期的状态B.将指向某一对象的情绪或幻想转移到另一个对象或替代的象征物上C.把感到危险或痛苦的想法排除在意识之外使之不被察觉D.拒绝承认不愉快的现实
- 意识的冰山理论表明意识结构的哪部分占据的比重最大( )。A.潜意识B.意识C.前意识D.一样大6.单选(5分)本我依照( C )原则行事。A.中立原则B.现实原则C.快乐原则D.道德原则
- 本行为收款行,他行为付款行,这类凭证又称为代付票据.
- ( 难度:中等)Hive与传统关系型数据库对比,优势有A.计算能力更强B.延迟更低C.扩展性更好D.索引各类更多
- 2016年7月12日,由南海某声索国单边发起的仲裁案结果出笼,大大增加了南海的复杂化形势,这个国家是()