}
cout<<\优秀的学生=\及格的学生人数=\}
2. 一个数如果恰好等于他的因子之和,这个数就称为“完全数”。例如6的因子是1,2,3, 而6=1+2+3。因此6是一个完全数。编程序找出1000之内的所有完全数。
#include
int i,j,x;
for(i=1;i<1000;i++) {
for(j=1,x=0;j<=i/2;j++) if(i%j==0) x+= j; if(i == x)cout<
3. 打印出所有的“水仙花数”、所谓“水仙花数。是指一个3位数,其各位数字立方和等于
333
该数本身。例如,153是一水仙花数,因为153=1+5+3。 #include 4. 下列乘法算式中:每个汉字代表1个数字(1~9)。相同的汉字代表相同的数字,不同的汉字代表不同的数字。 赛软件 * 比赛 = 软件比拼 试编程确定使得整个算式成立的数字组合,如有多种情况,请给出所有可能的答案。 #include long a1,a2,a3,a4,a5; long x,y; for(a1=1;a1<10;a1++) for(a2=1;a2<10;a2++) for(a3=0;a3<10;a3++) for(a4=1;a4<10;a4++) for(a5=0;a5<10;a5++) { x = (a1*100.0+a2*10.0+a3) * (a4*10.0+a1); y = a2*1000.0+a3*100.0+a4*10.0+a5; if(y == x) printf(\= %ld%ld%ld%ld\\n\ } printf(\} 5. 求sum=a+aa+aaa+…+aaaaa…a(n个a)之值,其中a是一为数字。例如,当a=3,n=6时,sum=3+33+333+3333+33333+333333。a和n的值由键盘输入。 #include int a,n; long sum=0L,t=0; cout<<\请输入a 和n: \ cin>>a>>n; for(int i=1;i<= n;i++) { t = t*10+a; sum += t; } cout< 第4章 复合数据类型 一、单选题 1.对于一维数组a[10],判断下列对数组元素的引用正确的是( A )。 A.a[2+3] B. a[3/1.0] C. a[5+8] D. a[3.4] A. a[5][0] B. a[0.5][4] C. a[4][4+5] D. a[1][4+9] 2. 对于二维数组a[5][10],判断下列对数组元素的引用正确的是( C )。 3. 以下错误的定义语句是( C )。 A. int x[ ][3] = {{0},{1},{1,2,3}}; B. int x[4][3] = {1,2,3,1,2,3,1,2,3,1,2,3}; C. int x[ ][3] = {1,2,3}; D. int x[4][3] = {{1,2,3},{1,2,3},{1,2,3},{1,2,3}}; 4. 以下程序运行结果是( A )。 #include void main() { char chA[10] = \ strcpy(chA,chB); cout< A. d B. c C. \\0 D. 0 5. 设有如下结构体定义: struct student { char chName[8]; int iAge; char chSex; }stStaff[3]; 对结构体变量成员正确引用的是( B )。 A. cin>>stStaff.iAge; B. cin>>stStaff[0].iAge; C. cin>>stStaff; D. cin>>iAge; 二、填空题 1. 设有定义语句“int a[][3] = {{0},{1},{3}};”,则数组元素a[1][2]的值为( 0 )。 2.将字符串str2拼接到字符串str1后面。请空白处填入一条语句或一个表达式。 #include \ void main() { char str1[80]=\ char str2[60]=\ char *t = str1, *p = str2; while( *t )t++; while( *p) { } *t = '\\0'; cout< *t = *p ; t++; p++; 3.下列程序的输出结果是 *p=1 m=3 n=5 。 #include \void main() { int a[ ]={1,2,3,-4,5}; int m,n,*p; p=&a[0]; m=*(p+2); n=*(p+4); cout<<\} 4. 下列程序的输出结果是 2,2,1,1 。 #include \void main() { } int a[ ]={1,2,3,4,5,6}, *p; p = a; cout<<*p<<\ 三、编程题 1.用一维数组计算Fibonacci数列的前20项。 Fibonacci数列,按如下递归定义: F(1)=1; F(2)=1 F(n)=F(n-1)+F(n-2) n>2 #include 2. 用冒泡排序法对输入的20个数进行降序排序并存入数组中,然后输入一个数,查找该数是否在数组中存在,若存在,打印出数组中对应的下标值。 #include int a[N], i, k, t; for(i=0;i cout<<\请输入第\个数: \ cin>>a[i]; } for(k=1;k<=N-1;k++) //对数组进行冒泡排序 { for(i=N-1;i>=k;i--) if(a[i]>a[i-1]) { t=a[i]; a[i]=a[i-1]; a[i-1]=t; } //反序则交换 } cout<<\排序后的成绩是:\ for(i=0;i cout<<\ //输出排序好的数组 cout<<\输入你要查找的数\ cin>>t; for(i=0;i cout<<\找到了,它在数组中的第\个数\ break; } if(i==N)cout<<\没找到!\} 3. 编一程序,求字符串str的长度,要求用指针访问字符串。 #include int i; char chStr[80],*p; cout<<\请输入一个字符串: \ cin.getline(chStr,79,'\\n'); p = chStr; i =0; while(*p) { p++; i++; } cout<<\字符串的长度是\} 4. 试定义一结构体,用来描述日期,具体地说,该结构共有三个成员变量,分别描述年、月、日信息。然后再定义该结构类型的一个变量,要求从键盘输入数据,并输出结果。 #include \struct MyDate { int year; int month; int day; }; void main() { struct MyDate a;

