1、复习题一
一、单项选择题.以下选项中,均符合C常量形式的是 (1) O
A)'\123', 0123 B) Oxffce, 4\6789 C) 0246, e-5 D) i()2, 123.假定有 char a=,A\b=,B\c,那么执行 printf("%d”,(c=a 2、制补码的求法可以得出它是-126的补码值。
1 .假定 int a=l, b=2, c=0,表达式:c=(a== —b||—a,a+b+1.0/2)的值是 (3)。
A) 1B)2C) 1.5D) 2.5.表达三个变量a、b、c中有一个为0,两个为非。的正确表达式是 (4)。
A)a*b*c= =0B)a*b!=O||a*c!二O||b*c!=O
C)(a*b||a*c||b*c)&&!(a*b*c)D)!(a*b*c)&&(a+b+c).在以下表达式中,与a==0 && b!=0不说价的是 (5)。
A)!a&&bB)!(a!=0 || b==0)
C) ! (a==0 | | 3、b!=0)D) ! (a*b) && b.上机运行以下程序会出现一个错误,这个错误的性质是(6)。
main(){ int i,j,a[]={3,2,l},b[]={6,4,2,0);
float s=0;for(i=0;i<3;i++) {j=b[a[i]]; s+=1.0/j; } printf("\n %f\s);
)
A)数组说明语法错B)分母为0运算错
C)数组元素引用语法错D)数组元素引用下标超界错.设 char a[尸'xy\n0\1238\\(T;那么数组 a 的长度是 (7)。
A) 7B) 8C) 9D) 13.以下程序的功能是一(8) o
main()
{ 4、 int a[3][3]={ 1,2,34,5,6,7,8,9}, i,*p=a,s=0;for(i=0; i<3; i++) { for(; pp) p=a[i];
if(a[i] 5、rintf(H\n %d,%d",p,q);)
A)求最大值和最小值B)求最大值的位置和最小值的位置
C)求最大值的位置和最小值D)求最大值和最小值的位置.假设希望当字符变量a中为数字字符时,表达式的值为“真”,为非数字字符时,表达式 的值为“假那么以下不能满足要求的表达式是(10)。
A) a>=0 && av=9B) a>=,0, && a<='9'C) a>=48+0 && a<= 48+9D) a-O>=0 && a-’0'v=9
printf (" %5d" , a&&b);printf (" %5d\n,r , b 6、1/4+…1/N>15最小的N值并输出。
1 .为二维数组int输入数据后,计算并输出周边元素的和。
一、填空
1. -162. 0
4. a%3==0&&a%5
6.问号
9. a[b].b
答案3. x>20&&x>30||x<-100
5. int a[16] , *p=a;7. 18. 50
10 .结构体类型相同二.选择
BDCBA DADCD BDDDB BDCCA三、程序阅读题
01 ( 0 1 1 2 302 ( d=10
03 ( 20 3504 ( ABCDE
CDEE
05 ( 5 1 2 3 206 ( 0 1 2 1 28
四.程序设计m 7、ain ()
{ float sum=0;int n=0;
do {n++;sum+=l. 0/n;
} While(sum<=15);printf( " n=%d\n M , n-l);
)
1. main ()
{int i, j, sum=0, a[10] [10];
for(i=0; i<10; i++)
for(j=0;j<10;j++)scanf( a%dv ,&a[i][j]);
for(i=0; i<10; i++)sum+= a[i][0]+ a[9][i];
for(i=0; i<10; i++)sum+= a[i][0]+ a[i][9];
prin 8、tf( H sum==%d\n ",sum);复习题三
一、单项选择题.以下选项中,均符合C常量形式的是⑴ O
A) e5, 0123B) OxffceJW' C) 02468, 0.1 e-5 D) 102, 123.以下选项中,均符合C变量命名规那么的是(2) o
A)x」,l_aB) aC) a.c, ND) China,」A.假房变量 a=2, b=3, c=l,那么表达式:c==b>a || a+l==b--, a+b 的值是 (3)。
A)0B) 1C)4D)5.假定 int a=2, b=3, c=0,表达式:(a==b>l)+(a&&!c)+b/a*2.0 的值是(4) 9、
A) 2.0B)3.0C) 4.0D) 5.0.以下表达式中,不能正确表达两个非。变量a和b的绝对值相等,但互为异号的是*L
B) a*b<0 && (a>0 || b>0) D) !(a+b) && a*b<0
(6).
A) a==-b && (a>0 || b>0)
C) !abs(a+b) && (a>0 || b>0).以下各程序语句中,有语法错误的选项是
A)int x=Ay=2,z,a[2*'n'];
B) z=x+++y;
C) z=x+++y--;
D) z=(x+l)++-y;不正确的选项是⑺.
A) s=0;
for(i=0;i<3;i++)
10、for(j=0;j<4;j++) s+=a[i][j];
C)s=0;
for(i=0;i<4;i++)
for(j=0;j<3;j++) s+=a[j][i];
8.假定a是10个元素的一维数组, 那么正确的操作是⑻.
不正确的选项是⑺.
A) s=0;
for(i=0;i<3;i++)
for(j=0;j<4;j++) s+=a[i][j];
C)s=0;
for(i=0;i<4;i++)
for(j=0;j<3;j++) s+=a[j][i];
8.假定a是10个元素的一维数组, 那么正确的操作是⑻.
7.假定a是3行4列的矩阵(inta[3][4]),那么 11、对于以下求矩阵元素之和的程序段中,B)s=0;
for(j=0;j<4;j++)
for(i=0;i<3;i++) s+=a[i][j];
D) s=0;for(i=0;iv3;i++)
for(j=0;j<4;j++) s+=a[j][i];假设要将后9个数往前移一个位置挤掉最前面的一个数,
A) for(j=l;j<10;j++) a[j-l]=a|j]; B) for(j=8; j>0; j-) a[j]=a[j+l];
C) B) for(j=9;j>0;j-) a[j-l]=a[j]; D) for(j=0; j<10; j++) a[j]=a[j+l];9.以下各循环语 12、句中,不是无限循环的是(9).
A) for(k=-l; -10 13、a;else if ( a > max ) max=a;
)printf ("\n max,min= %d,%d,\ max, min);
)那么以下各结论中正确的选项是(11) o
A) 程序完全正确B)当输入递增数据时结果不正确
C)当输入递减数据时结果不正确D)输入任何数据结果都不正确.假设希望当字符变量a中为数字字符时,表达式的值为“真。为非数字字符时,表达式 的值为“假二那么以下不能满足要求的表达式是(⑵ O
A) a>=0 && a<=9B) a>='0' && a<='9'
C) a>=48+o && a<= 48+9D) a/0'>=0 && a「0'v=9.上机 14、运行以下程序会出现一个错误,这个错误的性质是一(13). main()
{intij,a[]={3,2,l},b[]={6A2,0};float s=0;
for(i=0;i<3;i++) {j=b[a[i]]; s+=l.O/j; } printf("\n %f\s);)
A)数组说明语法错B)数组元素引用语法错C)分母为0运算错D)数组元素引用下标超界错
11 .以下求矩阵a中主对角元素之和的各程序段中,不正确的选项是(14)
A) int a[3][3]={ 1,2,3,4,5,6,7,8,9}, s=0, *p=a;for ( p=a; p 15、
B) int a[3][3]={ 1,2,34,5,6,7,8,9}, s=0, i;for (i=0; i<3; i++ ) s+=a[i][i];
C) int a[3][3]={ 1,2,34,5,6,7,8,9}, s=0, *p=a, i;for (i=0; i<3; i++ ) s+=p[i][i];
D) int a[3][3]={ 1,2,345,6,7,8,9}, s=0, *p=a;for ( p=a; p 16、) a<0 || b<0 && a*b>0
C) a!=0 &&b!=0 && !(a+b)D) !(a+b) && a二、程序阅读题
13 .以下程序的运行结果是(16)
main()
{ int i, n=0;
for( i=l; i<20; i++) if (i%3==0&&i%5) n++;
printf(u\n %d”, n);
)
A) 1B)5C)6D)7.以下程序的运行结果是(17) o
main()
{ int n=2345;while(n) { printf(M%du,n%10); n/=10;}
)
A) 5432 B) 2345C) 4320D) 17、 3450.以下程序的运行结果是(18) o
main()
{ char *a="abCD12”;
f(a);
printf (n\n%sH,a);
)
C) abl2D) CD12
void f(char *s)
{ char *p=s;for (; *s; s++)
if (*s〉='A' && *sv=Z)*p++=*s;*p=0;
)
A) abCD12 B) CDf ( char *c )
{ fbr (; *c; c++)
if (*c>='A' && *c<='Z') *c=*c+32;
)
C) FORTRAN77 D) fORTRAN77
18、f ( char *c )
{ fbr (; *c; c++)
if (*c>='A' && *c<='Z') *c=*c+32;
)
C) FORTRAN77 D) fORTRAN77
19 .以下程序的运行结果是 (⑼ o main(){ char *a[]="FORTRAN77”; f(a+l ); printf(u%s9\a);
)A) Fortran77 B) fortran77
20 .以下程序的运行结果是一 (20) o
main()
{ char a[]="abcXYZ789”;int j,k=O;
for (j=0; a[j];j++) if(a[j] > 19、a[k]) k=j;j=a[O]; a[O]=a[k]; a[k]=j;printf (“%s”, a);
)
A) ZbcXYa789 B) cbaXYZ789.以下程序的运行结果是⑵)o
#include nstdio.h"
C) 7bcXYZa89 D) 9bcXYZ78a
main()
{ int i; char a[]=nabl2n;for (i=0; a[ij; i++)
switch (a[i]){case 1 : printf (n%dn, a[i]); break;
case 2 : printf ("%d",a[i]); break;default: if 20、 a[i]<-z*) putchar ( a[i]);
else printf (n%d'\a[i]+l );)
)
A)ab23B)abl2C)ab4950D)ab5051.以下程序的运行结果是(22) o
int a=3, b=5;
f (int a ) { a++;b+=a;}
main()
{ int a=6; f (a-1); printf(H\n %d,%dn,a,b); }
A) 3,8B)3,llC) 6,8.以下程序的运行结果是(23) o
main()
{ int i,s=0;for(i=3;i<8;i++) s+=f(i);
printf(n\ 21、n%dn,s);
)
A) 3B)5C) 15.以下程序的运行结果是(24) o
main(){ int i,b,k=0;
for (i=l; i<=5; i++){b=i%2;while (b一>=0) k++; }
printf ("%d,%d”,k,b);)
A) 3, - 1B) 8, - 1C) 3,025.以下程序的运行结果是(25) o
#define F x+ymain()
{ int x=4, y=5, z;if(x++ 22、int m)
{ int i;
for(i=2;i 23、
for(i=0;i p
B) print 24、f (n\n%3d,%3d",i,j )
D) printf (n\n%3d'; a[k][j])
(26) A) a[i]U]>pB)a[i]U] p
(28) A) printf(n\n%3d,%3dn,kj )C) printf (n\n%3dn, a[i][j])
・将两个有序的数组合并到另一个数组中,要求合并后仍有序。
main(){ int i=0,m=5,a[5]={ 1,3,7,9,13);
int j=0,n=6,b[6]={ 2,4,8,16,20,24};int k=0,c[ll];
while( i+






