首页 计算机二级题库

计算机二级题库

举报
开通vip

计算机二级题库计算机二级题库 编程题库 /*求菲玻那契数列的前20项。菲玻那契数列前2项分别是1,1,从第3项开始,各项分别 是其前2项之和。*/ #include void fibonacci(int f[]) { int i; /************Fill in the blanks************/ for(i=2;i void trans(int a[2][3],int b[3][2]) {/* 本函数将二维数组a的行和列元素互换,存到二维数组b中 */ /**********Error*...

计算机二级题库
计算机二级题库 编程题库 /*求菲玻那契数列的前20项。菲玻那契数列前2项分别是1,1,从第3项开始,各项分别 是其前2项之和。*/ #include void fibonacci(int f[]) { int i; /************Fill in the blanks************/ for(i=2;i<20;i++) /************Fill in the blanks************/ f[i]=f[i-1]+f[i-2]; } main() { int f[20]={1,1},i; fibonacci(f); printf("\n菲玻那契数列的前20项为: "); for(i=0;i<20;i++){ if(i%5==0) printf("\n"); /************Fill in the blanks************/ printf("%12d",f[i]); } getch(); } /*将一个二维数组a的行和列元素互换,存到另一个二维数组b中。*/ #include void trans(int a[2][3],int b[3][2]) {/* 本函数将二维数组a的行和列元素互换,存到二维数组b中 */ /**********Error**********/ int i,j; for(i=0;i<2;i++) for(j=0;j<3;j++) /**********Error**********/ b[j][i]=a[i][j]; } main() { int a[2][3]={{1,2,3},{4,5,6}},b[3][2],i,j; printf("数组a:\n"); for(i=0;i<2;i++){ for(j=0;j<3;j++) printf("%5d",a[i][j]); printf("\n"); } trans(a,b); printf("数组b:\n"); for(i=0;i<3;i++){ for(j=0;j<2;j++) printf("%5d",b[i][j]); printf("\n"); } getch(); } /*找出数组arr[]中的最大元素。 suffix函数的功能是:求出形参数组a[]中最大元素的下标。其中,形参n为数组元素的个数。 例如, 数组元素为: 56 178 6 123 87 243 161 124 78 143 则输出结果为: 数组arr的最大元素为: arr[5]=243 */ #include int suffix(int a[],int n) { int i,k,max; max=a[0]; for(i=1;i<10;i++) if(max /************Fill in the blanks************/ double sum(int m) { int i; double y,d; /************Fill in the blanks************/ y=0; for(i=100;i<=m;i+=100){ d = (double)i * (double)i ; y += 1.0/d; } /************Fill in the blanks************/ return(y); } main( ) { int n = 2000 ; printf("\nThe result is: %lf\n",sum(n)); getch(); } /*比较数组a[]和数组b[]中,a[i]>b[i]、a[i]=b[i]和a[i]y时,返回1;当x=y时,返回0;当x=y时,返回0。*/ #include /**********Error**********/ int comp(int x,int y) { int flag; if(x>y) flag=1; /**********Error**********/ else if(x==y) flag=0; else flag=-1; return(flag); } main() { int i,n=0,m=0,k=0; int a[10]={5,-23,5,21,6,18,9,12,23,7}; int b[10]={6,-9,64,23,-52,0,9,8,-35,12}; printf("数组a:\n"); for(i=0;i<10;i++) printf("%4d",a[i]); printf("\n"); printf("数组b:\n"); for(i=0;i<10;i++) printf("%4d",b[i]); printf("\n"); for(i=0;i<10;i++){ if(comp(a[i],b[i])==1) n=n+1; else if(comp(a[i],b[i])==0) m=m+1; else k=k+1; } printf("a[i]>b[i]%2d 次\na[i]=b[i]%2d 次\na[i] int fun(int a[],int n) { int i; int k=0; for(i=1;i<=1000;i++) if(i%7==0&&i%11==0) {a[k]=i; k++; } return k; } main() { void CHECK(); int arr[20],i,k,n; clrscr(); n=1000; k=fun(arr,n); for(i=0;i #define N 5 float count(int a[N][N]) { int i,j; float sum=0,ave; for(i=0;i<5;i++) for(j=0;j<5;j++) sum=sum+a[i][j]; ave=sum/(N*N); return ave; } main() { void CHECK(); int arr[N][N]={{0,1,2,7,9},{1,9,7,4,5},{2,3,8,3,1},{4,5,6,8,2},{5,9,1,4,1}}; clrscr(); printf("二维数组arr的元素的平均值为:%f\n",count(arr)) ; getch(); CHECK(); } /*求广义菲玻那契数列的第n项。广义菲玻那契数列前3项分别是1,1,1,从第4项开始,各项分别是其前3项之和。广义菲玻那契级数的前n项为:1,1,1,3,5,9,17,31,…… 。 例如,若 n = 20,则应输出 广义菲玻那契级数的第20项为: 46499。*/ #include long fibonacci(int n) { long a=1,b=1,c=1,d; int i; /************Fill in the blanks************/ for(i=4;i<=n;i++) { /************Fill in the blanks************/ d=a+b+c; a=b; b=c; c=d; } /************Fill in the blanks************/ return d; } main() { int n=20; printf("广义菲玻那契级数的第%d项为: %ld\n",n,fibonacci(n)); getch(); } /*应用冒泡排序算法,对数组a[]中的元素从小到大进行排序。*/ #include void sort(int a[],int n) { int i,j,t; for(j=0;ja[i+1]){ t=a[i]; /**********Error**********/ a[i]=a[i+1]; /**********Error**********/ a[i+1]=t; } } main() { int k,a[10]={6,-9,78,23,-12,0,9,8,-3,12}; printf("数组a:\n"); for(k=0;k<10;k++) printf("%d ",a[k]); sort(a,10); printf("\n从小到大排序:\n"); for(k=0;k<10;k++) printf("%d ",a[k]); printf("\n"); getch(); } /*计算1到形参n之间,能被3和7整除的整数的和,并作为函数值返回。 例如,n为1800时,程序输出: 1到1800之间,能被3和7整除的整数的和为: 76755 */ #include long sum(int n) { int i; long sum=0; for(i=1;i<=n;i++) if(i%3==0&&i%7==0) sum=sum+i; return(sum); } main() { void CHECK(); int n=1800; clrscr(); printf("1到%d之间,能被3和7整除的整数的和为: %ld\n",n,sum(n)) ; getch(); CHECK(); } /*统计子字符串substr在字符串str中出现的次数。 例如,若字符串为This is a C Program,子字符串为is,则应输出2。*/ #include int count(char str[],char substr[]) { int i,j,k,num=0; /************Fill in the blanks************/ for(i=0;str[i]!='\0';i++) for(j=i,k=0;substr[k]==str[j];k++,j++) /************Fill in the blanks************/ if(substr[k+1]=='\0') { num++; break; } /************Fill in the blanks************/ return num; } main() { char str[80],substr[80]; printf("Input a string: "); gets(str); printf("Input a substring: "); gets(substr); printf("The result is: %d\n",count(str,substr)); getch(); } /*求二维数组a[3][3]中各列元素的平均值,并依次存储在一维数组b[3]中。*/ #include void fun(int a[3][3],float b[3]) { int i,j; for(i=0;i<3;i++){ for(j=0;j<3;j++) /**********Error**********/ b[j]+=a[i][j]; } for(i=0;i<3;i++) /**********Error**********/ b[i]/=3; } main() { int a[3][3]={{1,2,3},{4,5,6},{7,8,9}},i; float b[3]={0,0,0}; fun(a,b); for(i=0;i<3;i++) printf("%4.1f ",b[i]); printf("\n") ; getch(); } /*有一个3×4的矩阵,求所有元素中的最小值。*/ #include min_value(int array[][4]) { int i,j,min; min=array[0][0]; for(i=0;i<3;i++) /************Fill in the blanks************/ for(j=0;j<4;j++) if(array[i][j] float average(float array[],int n) { int i; float aver,sum=array[0]; /************Fill in the blanks************/ for(i=1;i /**********Error**********/ void change(char s[]) { int i,k; k=0; /**********Error**********/ for(i=0;s[i]!='\0';i++) if(k) {if(s[i]==' ') k=0;} else if(s[i]!=' ') {k=1; s[i]=toupper(s[i]); } } main() { char str[80]; printf("\nPlease enter an English text line: "); gets(str); printf( "Before changing:\n %s",str); change(str); printf("\nAfter changing:\n %s\n",str); getch(); } /*计算 1 1 1 1 1 1 - --- + --- - --- + --- - ... --- 2 3 4 5 n 例如,n=100时,运算结果为:0.688172。*/ #include float count(int n) { int i; float sign=1; float sum=0; for(i=1;i<=n;i++) { sum=sum+sign/i; sign=(-1)*sign; } return sum; } main() { void CHECK(); int n=100; clrscr(); printf(" 1 1 1 1 1\n"); printf("1 - --- + --- - --- + --- - ... --- = %f\n",count(n)); printf(" 2 3 4 5 %d\n",n); getch(); CHECK(); } /*求出以下分数序列的前n项之和。 2 3 5 8 13 21 ?? , ?? , ?? , ?? , ?? , ?? , …… 1 2 3 5 8 13 例如,若n = 5,则应输出:8.391667。*/ #include /************Fill in the blanks************/ double sum(int n) { int a,b,c,k; double s; /************Fill in the blanks************/ s=0; a=2; b=1; for(k=1;k<=n;k++){ s=s+(double)a/b; c=a; /************Fill in the blanks************/ a=b+c; b=c; } return s; } main() { int n=5; printf("\nThe value of function sum is: %lf\n",sum(n)); getch(); } /*计算两个双精度数的和的平方根。 例如,若输入:23.18,32.4721,则输出:z=7.460034。*/ #include /**********Error**********/ double count(double a,double b) { double c; /**********Error**********/ c=sqrt(a+b); return c; } main() { double x,y,z; printf("Enter x,y:"); scanf("%lf,%lf",&x,&y); z=count(x,y); printf ("z=%f\n",z); getch(); } /*计算n!。例如,给n输入5,则输出5!=120。*/ #include long count(int n) { int i; long s=1; for(i=1;i<=n;i++) s=s*i; return s; } main() { void CHECK(); int n; clrscr(); printf("Input N:"); scanf("%d", &n); printf("%d! =% ld\n",n,count(n)); getch(); CHECK(); } /*输出M行M列整数方阵,并计算主对角线上各元素之和。*/ #include #define M 5 /************Fill in the blanks************/ int count(int n,int a[M][M]) { int i,sum=0; for(i=0;i void invert(char str[],int n) {int i;char temp; for(i=0;i int upper,lower,digit,space,other; /************Error************/ count(char str[]) { int i=0; while(str[i]!='\n') { if((str[i]>='A')&&(str[i]<='Z')) upper++; else if((str[i]>='a')&&(str[i]<='z')) lower++; /************Error************/ else if(str[i]==' ') space++; else if((str[i]>='0')&&(str[i]<='9')) digit++; else other++; i++; } } main() { int i=0; char s[80]; printf("\n请输入一行字符:"); while((s[i]=getchar())!='\n') i++; upper=lower=digit=space=other=0; count(s); printf("其中,大写字母个数:%d,小写字母个数:%d,空格个数:%d,数字个数:%d,其它字符个数:%d",upper,lower,space,digit,other); getch();} /*输入一个字符串(不超过80个字符),按逆序存放。*/ #include /************Error************/ void inverse(char str[]) { int i,j; char t; for(i=0,j=strlen(str);i=4 B. (2>5==5) C. (3<=3)&&(2<5) D. !(4<=8)||(3<=7) 9.凡是函数中未指定存储类别的局部变量,其隐含的存储类别为( a )。 A. auto B. static C. extern D. register 10.下列表达式中,( a )是非法的。 已知float a=5;int b=4; A. a%3+b B. b*b&&a||b C. (a>b)+(int)b%2 D. --b+a 11.下列运算符中,优先级别最高的是( b )。 A. <= B. % C. || D. + 12.关于下列语句描述正确的是( b )。 union { unsigned int n; unsigned char c; }u1; A. u1是共用体类型名 B. u1是共用体变量名 C. u1是结构体类型名 D. u1占用内存空间3字节 13.设有int x,y;正确的输入语句是( c )。 A. scanf("%d%d",x,y); B. scanf("x=%f,y=%f",&x,&y); C. scanf("%d,%d",&x,&y); D. scanf("x=%d,y=%d",x,y); 14.在一个C语言程序中( b )。 A. main函数必须出现在所有函数之前 B. main函数可以在任何地方出现 C. main函数必须出现在所有函数之后 D. main函数必须出现在固定位置 15.有关预处理命令#define N 10,以下描述正确的是( c )。 A. N在程序运行时可以被改变 B. N是个整型变量 C. N没有值和类型的含义 D. N是个标识符,称为宏体 16.当调用函数时,实参是一个数组名,则向函数传送的是( b )。 A. 数组的长度 B. 数组的首地址 C. 数组每一个元素的地址 D. 数组每个元素中的值 17.有以下程序 main() { int i; for(i=0;i<3;i++) switch(i) { case 1: printf("%d",i); case 2: printf("%d",i); default: printf("%d",i); } } 执行后输出的结果是 ( a )。 A. 011122 B. 012 C. 012020 D. 120 18.以下程序的输出结果是( d )。 #define M(x,y,z) x*y+z main() { int a=1,b=2, c=3; printf("%d\n", M(a+b,b+c, c+a)); } A. 19 B. 17 C. 15 D. 12 19.下列程序的输出结果是( d )。 main() { char a[10]={9,8,7,6,5,4,3,2,1,0},*p=a+5; printf("%d",*p); } A. 非法 B. a[4]的地址 C. 5 D. 4 20.函数fun(float x)的函数类型是( a )。 A. int B. void C. float D. 不确定 21.关于C程序说法正确的是( c )。 A. 一行只能写一条语句 B. 一个语句不可以分写在多行上 C. C语言本身没有输入输出语句 D. 分号不是C语句的必要组成部分 22.关于语句FILE *fp;描述错误的是( c )。 A. fp是一个指向FILE类型的指针变量 B. 通过fp可以实现对与它相关文件的访问 C. fp指向与它相关文件的地址 D. 函数fclose(fp)可关闭fp指针指向的文件 23.假定x和y为double型,则表达式x=2,y=x+3/2的值是( d )。 A. 3.500000 B. 3 C. 2.000000 D. 3.000000 24.下列运算符结合方向是右结合的是( d )。 A. + B. && C. >= D. ?: 25.以下语句中不正确的是( a )。 A. char s[10];s="test"; B. char s[]={'t','e','s','t'}; C. char s[20]="test"; D. char *s="test\n"; 26.有以下程序段 int k=0; while(k=1) k++; while 循环执行的次数是( a )。 A.无限次 B.有语法错,不能执行 C.一次也不执行 D.执行1次 27.关于else语句描述正确的是( c )。 A. 不可缺少 B. 必须与离之最近的if语句配对使用 C. 不可以单独使用 D. 必须使用缩进格式表示 28.设a、b、c、d、m、n均为int型变量,且a=5、b=6、c=7、d=8、m=2、n=2,则逻辑表 达式(m=a>b)&&(n=c>d)运算后,n的值为( c )。 A. 0 B. 1 C. 2 D. 3 29.合法的赋值语句是( b )。 A. x=y=100 B. d--; C. x+y; D. c=int(a+b); 30.以下程序段的输出结果是( c )。 int x=3; do { printf("%3d",x-=2); }while(!(--x)); A. 1 B. 3 0 C. 1 -2 D. 死循环 31.只有当整数x为奇数时,表达式为逻辑“真”的是( b )。 A. x%2==0 B. !(x%2==0) C. (x-x/2*2)==0 D. !(x%2) 31.下列程序段的输出结果是( a )。 for(a=1;a<=10;a++) if(a%3==1)break; printf("%d\n",a); A. 1 B. 2 C. 3 D. 4 32.以下叙述中正确的是( b )。 A. 全局变量的作用域一定比局部变量的作用域范围大 B. 静态(static)类别变量的生存期贯穿于整个程序的运行期间 C. 函数的形参都属于全局变量 D. 未在定义语句中赋初值的auto变量和static变量的初值都是随机值 33.有如下函数调用语句func(rec1,rec2+rec3,(rec4,rec5)); ,该函数调用语句中,含有的实参个 数是( a )。 A. 3 B. 4 C. 5 D. 有语法错误 34.与y=(x!=0?1:-1);功能相同的if语句是( b )。 A.if(x<>0) y=1; else y=-1; B.if(x) y=1; else y=-1; C.if(x) y=-1; else y=1; D.if(x>=0) y=1; 35.以下能正确定义数组并正确赋初值的语句是( d )。 A. int N=5,b[N][N]; B. int a[0][2]={{1},{3}}; C. int c[2][]={{1,2},{3,4}}; D. int d[3][2]={{1,2},{3,4}}; 36.下列选项中合法的字符常量是 ( b ) A. "&" B. 'R' C. "ABC" D. "\n" 37.若有如下定义: int a[10]; 则下面不能正确表示 a[1]地址的 表达式是( d )。 A. &a[1] B. &a[0]+1 C. a+1 D. a++ 38.若有以下程序: main ( ) { int a[3][3]={1,2,3,4,5,6,7,8,9} , i=0,sum=0; do { sum+=a[i][i]; i++; } while(i<3); printf( "%d" , sum ); } 则程序运行后的输出结果是 ( a )。 A. 15 B. 12 C. 16 D. 18 39.下列数组声明中不正确的是( c )。 A.char a[4] ; B. char a[ ][4]={"aa",""}; C. char a[4][ ]; D.char a[5][4]; 40.有以下声明语句: struct x { int a ; float b; char c; } y ; 则下列叙述中不正确的是 ( b )。 A. x 是定义的结构体名. B. y 是定义的结构体类型名. C. struct是结构体类型的关键字. D. a,b,c 都是结构体成员名. 41.已知int t=0;则以下关于 while(t=1){. . .}的说法正确的是( c )。 A. 循环控制表达式不正确 B. 循环控制表达式的值永远为1 C. 死循环,永远无法结束 D. 一次循环体都不会执行. 42.int x=3,y=4,a=,,b=6; 则表达式(a=x) &&(b=y)的值是 ( b )。 A. 0 B. 1 C. 2 D. 不确定 43.执行以下程序后的输出结果为( b )。 # include main() { int i; for (i='A'; i<'I';i++,i++) printf("%c",i+32); printf("\n"); } A. abcdefghi B. aceg C. acegi D.编译出错,无输出。 44.以下关于宏替换的叙述不正确的是( d )。 A. 宏替换不占用运行时间 B. 宏替换只是字符替换,不作语法检查 C. 宏名称无类型 D. 宏名称必须用大写字母表示 45.一个C语言程序由若干个函数组成,其中唯一不可缺少的函数是( d )。 A. 库函数 B. scanf 函数 C. printf函数 D. main函数 46.下面程序的输出是( a )。 main() { int a[10]={1,2,3,4,5}; printf("%d\n",a[6]); } A. 0 B. 1 C. 2 D. 3 47.若有 static char s[10]="abcdefg"; 则数组 s 所占的字节数是( b )。 A.7 B. 10 C. 11 D. 8 48.下列程序的功能是 ( a ) main ( ) { int s[4][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}}; int m,n; for (m=0;m<4;m++) { for (n=0;n<=m;n++) printf("%d",s[m][n]); printf("\n"); } } A.输出,×,矩阵的下三角的元素. B.输出,×,矩阵的上三角的元素. C.输出,×,矩阵的对角线上的元素. D.输出,×,矩阵的全部元素. 49.执行语句for ( x=4; x-->0 ; );后,变量x 的值是 ( a )。 A. -1 B. 0 C. 1 D.不确定 50.若有以下程序: main ( ) { int x[6]={11,16,17,28,20}, *t=x+3; printf ("%d" ,*t-2); } 则程序运行后的输出结果是 ( d )。 A. 18 B. 14 C. 29 D. 26 51.表达式x 和y 的取值同时在 ( 0, +?) 或 同时在 (-?, 0) "的表达式是 ( c ) 。 A. (x+y>0) && (x+y<=0) B. (x>=0 | | y>=0) && (x<0 ||y<0) C. x>0&&y>0 || x<0 && y<0 D. (x>=0&&y>=0) &&(x<0&&y<0) 52.有以下程序: main( ) { int n,s[8]; for ( n=1; n<=8;n++) s[8-n]=n; printf ("%d%d%d" ,s[2],s[4],s[6] ); } 则程序运行后的输出结果是 ( c )。 A. 246 B. 741 C. 642 D. 147 53.设int x=12,y=12345;则执行语句printf("x=%4d,y=%4d",x,y);的结果是( c )。 A. x= 12,y=1234 B. x=12,y=12345 C. x= 12,y=12345 D. x= 12,y=2345 54.C 语言规定函数返回值的类型由( a )。 A.在定义函数时所指定的函数类型所决定。 B.调用该函数时 的主调函数的类型所决定。 C.return语句中的表达式的类型所决定。 D.调用该函数时系统临时决定。 55.while 循环和 do -while 循环的区别是( c ) A. while 循环和 do -while 循环的循环体都可以不执行; B. while 循环的循环体将至少执行一次,而do -while 循环的循环体可以不执行; C. do- while 循环的循环体将至少执行一次,而while 循环的循环体可以不执行; D. while 循环和 do -while 循环的循环体都将至少执行一次。 56.下列程序的执行结果是( c )。 main() { int n=9; while(n>6) printf("%d",n--);} A. 9876 B. 876 C. 987 D. 8765 57.下列说法正确的是( d )。 A. C 语言能嵌套定义函数,但不能嵌套调用函数 B. C 语言不能嵌套定义函数,也不能嵌套调用函数 C. C 语言能嵌套定义函数,也能嵌套调用函数 D. C 语言不能嵌套定义函数,但能嵌套调用函数 58.a,b,c,d 都为float 型,且已正确赋值,则与数学表达式2ab/(5cd)等价的 C语言表达式是( a )。 A. a/c*b/d*2/5 B. a/(5*c*d)/2*b C. 2*a*b/5*c*d D. 2/5*a*b*(1/c*d) 59.下列程序的执行结果是( b )。 main() { int a,b,c; c=(a=3,b=a--); printf("%d,%d,%d",c,a,b); } A. 3,3,3 B. 3,2,3 C. 2,3,3 D. 2,2,3 60.有如下定义:int a=3,b=-4; long c=5; float x; double y ; 则下列选项中不符合C语言语法的表达式是( c )。 A. a+=a-=a*b B. a%b C. y=2*x; D. y=(float)c 1.在C语言中函数的隐含存储类型是( a )。 A. auto B. static C. extern D. 无存储类型 2.执行语句for(i=1;i++<4;);后,变量i的值为( c )。 A. 3 B. 4 C. 5 D. 不定 3.以下说法不正确的是( c )。 A. C语言中函数和变量一样有数据类型 B. 函数即使没有参数,也不可以缺少函数名后的一对圆括号 C. 函数带有形参时,形参必须是变量 D. 对不需要函数返回值的函数,应定义为void类型 4.以下所列的各函数原型中,正确的是( c )。 A. void fun(var a:int,var b:int); B. void fun(int a,b); C. void fun(int a,int b); D. void fun(a as int ,b as int); 5.若有定义和语句:char s[10];s="abcd";printf("%s\n",s);则结果是( d )。 A. 输出abcd B. 输出a C. 输出abcd\n D. 编译不通过 6.关于数组元素的下标描述正确的是( c )。 A. 必须是常量; B. 只能从0开始; C. 必须是整型表达式 D. 下标的个数表示数组的长度 7.下列常数中哪个是不合法的C常量( c )。 A. -0. B. 0003 C. 3e+2.3 D. "105" 8.在C程序中,设有说明: static int a[2][3]={ 1,2,3,4,5,6 }; 则下列表达式对a数组中的元素值引用正确的是( b )。 A. a(1)(2) B. **a C. a[1,2] D. a[0][3] 9.下列运算符中,优先级别最高的是( c )。 A. <= B. = C. % D. && 10.关于C程序说法正确的是( c )。 A. 一行只能写一条语句 B. 一个语句不可以分写在多行上 C. C语言本身没有输入输出语句 D. 分号不是C语句的必要组成部分 11.C语言中的if(表达式)语句里,表达式可以是( b )。 A. 逻辑表达式、关系表达式 B. 任何合法的表达式 C. 赋值表达式 D. 逻辑、关系和赋值表达式 12.float i,j,下列可以正确表示把i,j之和转换成整型的C语言表达式( c )。 A. int(i+j) B. int(i)+int(j) C. (int)(i+j) D. (int)i+j 13.下列标识符中非法的是( a )。 A. FILE B. temp C. stu_ave D. sum5 14.程序段:int x=10, y=3,z; printf("%d\n",z=(x%y,x/y));的输出结果是:( c )。 A. 1 B. 0 C. 3 D. 4 15.以下程序的输出结果是( c )。 main() { int i,a[10]; for(i=9;i>=0;i--) a[i]=10-i; printf("%d%d%d",a[2],a[5],a[8]); } A. 258 B. 741 C. 852 D.369 16.下列说法正确的是( a )。 A. continue语句只能用于循环语句中 B. switch语句中必须有default语句 C. break语句只用于循环语句内 D. break终止本次循环 ,continue终止本重循环 17.关于函数的说法不正确的是( a )。 A. 被调用函数的定义必须放在主调函数之前 B. 函数调用可以嵌套 C. 程序的入口是从main()开始 D. 各函数之间是平行的,相互独立的 18.已知int a,b;则下列表达式不合法的是 ( b )。 A. a/b B. (a+b)++ C. a+=b D. a*=b+3 19.C语言中do {循环体}while( 表达式);语句中,说法正确的是( b )。 A. 循环体可能一次也不执行 B. 循环体会至少执行一次 C. 循环体必须用{}组成复合语句 D. 表达式的值为0时,返回循环体执行循环内容 20.下列属于C语言基本数据类型的是( c )。 A. 整型、实型、逻辑型 B. 整型、字符型、逻辑型 C. 整型、字符型、实型 D. 整型、实型、字符型、逻辑型 21.若给出以下定义: char a[]="abcdefg"; char b[]={'a','b','c','d','e','f','g'}; 正确的叙述为( c )。 A. 数组a与数组b等价 B. 数组a与数组b的长度相同 C. 数组a的长度大于数组b的长度 D. 数组a的长度小于数组b的长度 22.执行以下程序后的结果为( a )。 main( ) {int i=1; while(i<=5) printf("%d,",i++);} A. 1,2,3,4,5, B. 2,3,4,5,6, C. 2,3,4,5, D. 1,2,3,4, 23.以下描述中正确的是( c )。 A. 预处理指完成宏替换和文件包含中指定的文件的调用 B. 预处理命令也是C语句 C. 凡是行首以#开始的控制行都是预处理命令 D. 预处理命令只能放在程序的开头 24.在调用函数时,如果实参是简单变量,它与对应形参之间的数据传递方式是( b )。 A. 地址传递 B. 单向值传递 C. 由实参传给形参,再由形参传给实参 D. 传递方式由用户指定 25.为表示关系'a'?x?'z' ,C 语言表达式应是( a )。 A. (x<='z')&&(x>='a') B. (x<='z')&(x>='a') C. (x<='z') and (x>='a') D. (x<='z')||(x>='a') 1.下列说法正确的是( d )。 A. C 语言能嵌套定义函数,但不能嵌套调用函数 B. C 语言不能嵌套定义函数,也不能嵌套调用函数 C. C 语言能嵌套定义函数,也能嵌套调用函数 D. C 语言不能嵌套定义函数,但能嵌套调用函数 2.C 语言规定函数返回值的类型由( a )。 A.在定义函数时所指定的函数类型所决定。 B.调用该函数时 的主调函数的类型所决定。 C.return语句中的表达式的类型所决定。 D.调用该函数时系统临时决定。 3.表达式x 和y 的取值同时在 ( 0, +?) 或 同时在 (-?, 0) "的表达式是 ( c ) 。 A. (x+y>0) && (x+y<=0) B. (x>=0 | | y>=0) && (x<0 ||y<0) C. x>0&&y>0 || x<0 && y<0 D. (x>=0&&y>=0) &&(x<0&&y<0) 9.有如下定义:int a=3,b=-4; long c=5; float x; double y ; 则下列选项中不符合C语言语法的表达式是( c )。 A. a+=a-=a*b B. a%b C. y=2*x; D. y=(float)c 13.若有如下定义: int a[10]; 则下面不能正确表示 a[1]地址的 表达式是( d )。 A. &a[1] B. &a[0]+1 C. a+1 D. a++ 1.在C语言中,char型数据在内存中是以( a )形式存储的。 A. ASCII码 B. 原码 C. 反码 D. 补码 2.对下列程序段输出结果的判断中,正确的是( c )。 char a[ ]="disk",*p; p=a; printf("%d\n",*(p+4)); A. 输出不定值 B. 不能输出 C. 输出0 D. 输出107(k的ASCII码值) 3.表示x的值在[0,9]中的正确的表达式是( d )。 A. 0<=x<=9 B. x>=0 and x<=9 C. x>=0 & x<=9 D. x>=0 && x<=9 4.已知int a,b;则下列表达式合法的是( d )。 A. 2.5%a B. ++(a+b) C. 3++ D. a=b==3 5.设有类型说明 unsigned int a=65535; 则printf函数中按 %d 格式输出a的值,其结果是( b )。 A. 65535 B. -1 C. 1 D. -32767 6.下列字符常量中非法的是( d )。 A. '\'' B. '\\' C. '\n ' D. '\678' 7.下列不是局部变量的是( c )。 A. 用register声明的变量 B. 用auto声明的变量 C. 在所有函数外声明的变量 D. 函数的形参 8.字符串"abc\t\b\007\n"在内存中所占字节数是( d )。 A. 14 B. 15 C. 7 D. 8 9.在函数参数传递过程中,值传递要求( c )。 A. 形参和实参类型任意,个数相等 B. 实参和形参类型都完全一致,个数相等 C. 实参和形参对应的类型一致,个数相等 D. 实参和形参对应的类型一致,个数任意 10.下面哪一种程序结构不是,语言的分支结构( b )。 A. if ( ) ... else ... B. for( ) ... C. switch ( ) D. ( 条件) , 值1:值2 11.以下不正确的描述为( b )。 A. 在函数之外定义的变量称为外部变量,外部变量是全局变量 B. 外部变量存放在动态存贮区中 C. 在一个函数中既可以使用本函数中的局部变量,又可以使用全局变量 D. 若在同一个源文件中,外部变量与局部变量同名,则在局部变量的作用范围内,外部变量不起作用 12.C语言允许带参数的主函数存在,其一般形式是( a )。 A. main ( int argc , char *argv[ ] ) B. main ( char argc , char *argv[ ] ) C. main ( char argc , int *argv[ ] ) D. main ( int argc , int *argv[ ] ) 13.在被调用函数中,关于return语句使用的描述,( d )是错误的。 A. 被调用函数中可以不用return语句 B. 被调用函数中可以有多个return语句 C. 被调用函数中,如果有返回值,就一定要有return语句 D. 被调用函数中,一个return语句可以返回多个值给主调函数 14.以下说法正确的是( d )。 A. C语言中函数和变量不一样,没有数据类型 B. 函数若没有参数,可以缺少函数名后的一对圆括号 C. 函数带有形参时,可以不说明形参的数据类型 D. 当函数无返回值时,函数定义时应定义成void类型. 15.在C程序中,设有说明: static int a[2][3]={ 1,2,3,4,5,6 }; 则下列表达式能对a数组中的元素值正确引用的是( d )。 A. *(a+1) B. a C. &a[1][3] D. *(*a+1) 16.在一个整常量2后面,加上L字母,该常量2L类型是( b )。 A. 非法标识符 B. long C. int D. 变量名 17.下列运算符中运算级别最低的运算符是( b )。 A. && B. = C. ?: D. || 18.下列关于结构体的说法正确的是( b )。 A. 结构体变量所占存储单元字节数为最大成员所占字节数 B. 结构体变量所占存储单元字节数为所有成员所占字节数的总和 C. 结构体各成员共用同一段内存单元 D. 结构体变量对成员的访问用"->"运算符 19.以下不正确的描述是( c )。 A. 使用while和do...while循环时,循环变量初始化操作应在循环语句之前完成 B. while循环是先判断表达式,后执行循环体语句 C. do...while和for循环均是先执行循环体语句,后判断表达式 D. for、while、do...while循环中的循环体均可以由空语句组成 20.C语言用( d )表示逻辑"真"值。 A. true B. .t. C. 非0 D. 整型值1 21.结束本次循环,而开始下一次循环的语句是( c )。 A. goto; B. break; C. continue; D. return; 22.下面字符序列中,C合法的标识符是( a )。 A. wps B. next-day C. x$ D. goto 23.一个可执行C程序的开始执行点是( d )。 A. 程序中的第一条语句 B. 文件的第一个函数 C. 程序中第一个定义的函数 D. main( )函数 24.下述对,语言字符数组的描述中错误的是( c )。 A. 字符数组可以存放字符串 B. 字符数组中的字符串可以整体输入和输出 C. 可以在赋值语句中通过赋值运算符","对字符数组整体赋值 D. 不可以用关系运算符对字符数组中的字符串进行比较 25.若a,b,c,d,t均为整型变量,则执行以下程序段后的结果为( b )。 # define MAX(A,B) (A)>(B)?(A):(B) # define PRINT(Y) printf("Y=%d\n",Y) ......... a=1; b=2; c=3; d=4; t=MAX(a+b,c+d); PRINT(t); A. 存在语法错误 B. Y=7 C. t=7 D. t=0 2.以下叙述中不正确的是( d )。 A. 在不同的函数中可以使用相同名字的变量 B. 函数中的形式参数是局部变量 C. 在一个函数内定义的变量只在本函数范围内有效 D. 在一个函数内的复合语句中定义的变量在本函数范围内有效 7.带参数的宏定义中,程序中引用宏定义的实参( d )。 A. 只能是常量 B. 只能是整型量 C. 只能是整型表达式 D. 可以是任意表达式 11.以下说法不正确的是( a )。 A.函数返回值类型与函数定义时的数据类型无关 B.函数的类型定义时不应缺少,即使没有也应定义为void C.函数的指针是指函数的入口地址 D.被调用函数可以用return 语句返回主调函数 4.下列循环的循环体执行次数为( d )。 int i=0,j=10; for(;i=j=10;i++,j--) A. 0 B. 1 C. 10 D. 无限次 8.C语言中 for( 表达式1;表达式2;表达式3) {循环体} 语句中,说法正确的是 ( a )。 A.表达式2可以省略 B.表达式中间的分隔符';' 可以省略 C.表达式1不能省略 D.表达式2不能省略,否则是死循环 9.int i=5, k ; 表达式k=2*'B'-'A'-'C'+i的值是( a )。 A. 5 B. 6 C. 7 D. 8 11.若有以下定义,则 p+5 表示( a )。 int a[10],*p=a ; A.元素a[5]的地址 B.元素a[5]的值 C.元素a[6]的地址 D.元素a[6]的值 16.字符串"\"yes\"or\"no\"\n"在内存中所占字节数是( b )。 A. 12 B. 13 C. 17 D. 18 17.若有 int *p,a[10]; p=a; , 则以下不正确的表示是( b )。 A. p=a+1 B. a++ C. *(a+1) D. p++ 18.下列常数中( a )是不合法的C常量。 A. 12e1.5 B. 3e5 C. 1.3 e-5 D. 12E2 21.若有以下定义,则 p[3] 表示 ( b )。 int a[10],* p =a+2 ; A.元素a[5]的地址 B.元素a[5]的值 C.元素a[6]的地址 D.元素a[6]的值 22.已知int a,b;则下列表达式不合法的是( c )。 A. 3%a B. a+=b C. ++3+a+b D. 0b) a+=b; C. if(a>b) a+=b*2; else if(a<0) a-=b*2; D. if(a>b) a+=b-2;else a=b*2; 8.若要使a=123,b=4567,c='A' 用 scanf("%3d%4d,%c",&a,&b,&c); 则输入格式应为( d )。 A. 123,4567,A B. 1234567A C. 123 4567 A D. 1234567,A 9.在使用getchar()函数时必须( b )。 A. 先定义一个字符变量 B. 使用 #include "stdio.h" C. 使用 #define getchar D. 什么也不需要 10.,语言对数据文件的存取是以( a )为单位的,这种文件称为顺序文件。 A.字节 B.记录 C.字 D.整数 11.下列运算符中运算级别最低的运算符为 ( a )。 A. , B. = C. ? : D. || 12.有 struct st{ int a;float b;} x,*y=&x; 不正确的引用为( c )。 A. x.a B. y->b C. *y.b D.(*y).a 14.若有 int *p1,*p2,k; 不正确的语句是( d )。 A. p1=&k; B. p2=p1; C. *p1=k+12; D. k=p1+p2; 15.设a为整型变量,初值为12,执行完语句a+ =a-=a*a;后,a 的值是( d ) A. 252 B. 144 C. 264 D. -264 16.设a为整型变量,则表达式 a,4&&5>3运算后a 的值为( b )。 A. 0 B. 1 C. 2 D. 3 17.有类型定义 char s[ ],"ab12cdef", *p; 执行了语句p=&s[3]; 后, *(p,5)的值是( b ) A. 'f' B. '\0' C. 不确定 D. 字符 'f' 的地址 18.表示 x 的值在[100,200]中的正确的表达式为( d )。 A. 100<=x<=200 B. x>=100 and x<=200 C. x>=100 & x<=200 D. x>=100 && x<=200 19.若有 int a[4][5],b[5][4],(*p)[5]; ( a )是正确的语句。 A. p=a; B. p=b; C. p=a[3]; D. p=b[2]; 20.已知int a=5;下列循环的循环次数是( d )。 do{ printf("%d",a--); a--; }while(a!=0); A. 0 B. 1 C. 5 D. 无限次 22.对C 语言字符数组的描述不正确的为( d )。 A. 字符数组可以存放字符串 B. 字符数组中的字符串可以整体输入、输出 C. 可以用 "=" 对字符数组整体赋值 D. 不可以用关系运算符比较字符数组中的字符 23.C语言中 char, int, double这三种变量在内存中分别占( c )。 A. 2个字节,4个字节,4个字节 B. 1个字节,4个字节,4个字节 C. 1个字节,2个字节,8个字节 D. 2个字节,2个字节,8个字节 24.当一个函数没有返回值时,定义它的函数类型应是( a )。 A. void B. 任意 C. int D. 无 25.设a的值为22,n的值为7,则表达式a,,(n,,2)运算后a的值为( a )。 A. 0 B. 1 C. 12 D. 6 22.当调用函数时,实参是一个数组名,则向函数传送的是( b )。 A. 数组的长度 B. 数组的首地址 C. 数组每一个元素的地址 D. 数组每个元素中的值 25.只有当整数x为奇数时,表达式为逻辑“真”的是( b )。 A. x%2==0 B. !(x%2==0) C. (x-x/2*2)==0 D. !(x%2) 1.整型变量x和y的值相等、且为非0值,则以下选项中,结果为零的表达式是( d )。 A. x || y B. x ||!y C. x && y D. !x||!y 2.下列运算符中,优先级别最高的是( d )。 A. <= B. % C. || D. ! 3.如下程序段的输出结果是( c )。 int i=5 , j; j=(++i)+(i++); printf("%d:%d",i,j); A. 5:10 B. 6:12 C. 7:12 D. 7:10 4.关于下列语句描述正确的是( b )。 union { unsigned int n; unsigned char c; }u1; A. u1是共用体类型名 B. u1是共用体变量名 C. u1是结构体类型名 D. u1占用内存空间3字节 5.如下程序段的输出结果为 ( b )。 int x=5,y=4,z=4; x=y= =z; printf("%d", x); A. 0 B. 1 C. 4 D. 5 6.下列关于数组说法错误的是( d )。 A. 引用数组元素时下标从0开始 B. 数组名表示数组首元素的起始地址 C. 同一数组的所有元素是同一类型 D. int n=10,a[n]; 7.数学表达式 |x|/2a 对应的正确 C 语言表达式是( c )。 A. exp(x)/(2*a) B. sqrt(x)/(2*a) C. fabs(x)/(2*a) D. |x|/(2*a) 8.为了避免嵌套的if-else的二义性,C语言规定:else与( b )配对。 A. 缩排位置相同的if B. 其之前最近尚未配对的if C. 其之后最近尚未配对的if D. 同一行上的if 9.若有以下定义和语句: static char s1[11]="12345", s2[10]="1234"; printf("%d\n",strlen(strcat(s1,s2))); 则输出结果是:( c )。 A. 11 B. 10 C. 9 D. 5 13.若有以下定义和语句: char *s1="12345", *s2="1234"; printf("%d\n",strlen(strcpy(s1,s2))); 则输出结果是:( a )。 A. 4 B. 5 C. 6 D. 10 10.下列说法正确的是( a )。 A. break语句只用于循环语句和switch语句中 B. switch语句中必须有default语句 C. continue语句一般用于循环语句中,也可单独使用 D. break 终止本次循环 ,continue终止本重循环 11.有关预处理命令#define N 10,以下描述正确的是( c )。 A. N在程序运行时可以被改变 B. N是个整型变量 C. N没有值和类型的含义 D. N是个标识符,称为宏体 12.下列不合法的C标识符是( b )。 A. num1 B. num_1 C. num-1 D. num123 13.下列数据中不合法的十六进制整常量是( c )。 A. 0XAB B. 0xaf C. 0fx D. 0x42 14.若定义int a=10;,下列循环的输出结果是( b )。 while(a>7) { a--;printf("%d",a); } A. 10 9 8 B. 9 8 7 C. 10 9 8 7 D. 9 8 7 6 15.在C 语言程序中,以下描述正确的是( b )。 A. 函数的定义可以嵌套,但函数的调用不可以嵌套 B. 函数的定义不可以嵌套,但函数的调用可以嵌套 C. 函数的定义和函数的调用均不可以嵌 D. 函数的定义和函数的调用均可以嵌套 16.以下程序段的输出结果是( c )。 for(i=1;i<6;i++) { if(i%2)printf("#");continue; } A. ##### B. ## C. ### D. #### 17.如下程序段的输出结果是( a )。 int i=010,j=10,k=0x10; printf("%d,%d,%d", i,j,k); A. 8,10,16 B. 8,10,10 C. 10,10,10 D. 10,10,16 18.一个C语言程序总是从( d )开始执行。 A. 主过程 B. 子过程 C. 子程序 D. 主函数 19.执行以下程序后的结果为( a )。 main( ) { static char a[10]={'1','2','3','4','5','6','7','8','9','\0'}, *p ; int i; i=8; p=a+i; printf("%s", p-3); } A. 6789 B. 6 C. '6' D. 67890调试程序一 21.指针变量存放的是另一个变量的( b )。 A. 值 B. 地址 C. 标识 D. 名字 22.关于函数声明语句void fun(int a[10]);说法错误的是( b )。 A. 该函数实现的是地址传递 B. 该函数实现的是值传递 C. 该函数无返回值 D. 该函数只有一个形参 23.一个程序由若干文件组成,要共用同一变量,则此变量的存储类别应为( c )。 A. auto B. static C. extern D. register 1.对于else 语句中描述正确的是( b )。 A. 不可缺少 B. 可有可无,但须与if语句配合使用 C. 可以单独使用 D. 必须使用缩进格式表示 2.以下不正确的语句是( a )。 A. if (a>b) a++ else ++b; B. if (a>b) a+=b; else ; C. if (a) a+=b; else if(b) ++b; D. if (a>b) a++ ; else if(b) ++b; 3.关于数组元素的下标描述正确的是( c )。 A. 必须是常量 B. 只能从0开始 C. 可以是任何基本类型 D. 下标的个数表示数组的长度 4.以下有关宏替换的正确叙述是( d )。 A. 宏替换不占用编译预处理的时间 B. 带参数的宏与函数等价 C. 宏名也有类型 D. 宏名也是标识符 7.下列表达式结果为真的是( b )。 A. 1<4&&5<4 B. !(2<5==5) C. !(1<3)||!(2<5) D. !(4<=6)&&(3>=7) 9.若有说明语句int i,j;且i的值为6,则执行语句j=(++i)+(i++);后i的值是( b )。 A. 7 B. 8 C. 13 D. 15 10.表示字符变量x是数字字符的正确的表达式是( d )。 A. '0'<=x<='9' B. x>='0' and x<='9' C. x>=0 && x<=9 D. x>='0' && x<='9' 11.下列说法正确的是( c )。 A. C程序总是从main( )开始运行的,必须到main( )结束时为止 B. main( )必须放在程序的开头 C. 一个,程序可以有多个文件,但只能有一个main( )函数 D. 在,程序中,要调用的函数必须在main( )函数中定义 12.数组名作为参数传递给函数,作为实参的数组名被处理为( a )。 A. 该数组的首地址 B. 该数组元素的个数 C. 该数组中所有元素的值 D. 该数组第一个元素的值 14.以下说法不正确的是( c )。 A. C语言中函数和变量一样有数据类型 B. 函数即使没有参数,也不可以缺少函数名后的一对圆括号 C. 函数带有形参时,实参必须是变量 D. 对不需要函数返回值的函数,应定义为void类型 15.语句int *ptr( );说明了( d )。 A. ptr是指向一维数组的指针变量 B. ptr是指向int型数据的指针变量 C. ptr是指向函数的指针,该函数返回一个int型数据 D. ptr是一个函数名,该函数的返回值是指向int型数据的指针 16.程序段:int x=10, y=3,z; printf("%d\n",z=(x>y?x%y:x/y);的输出结果是( a )。 A. 1 B. 0 C. 3 D. 4 17.下面两个程序段中,变量sum和,的初值均相同,在( b )情况下,两个程序段的执行结果不相同。 while ( i>=0) do { sum=sum+i; { sum=sum+i; i++; ++i; } }while(i>=0); A. i的初值大于10 B. i的初值小于0 C. 任意条件 D. sum的初值为0 18.下列运算符优先级最高的是( c )。 A. % B. ! C. -> D. ~ 19.C语言中for(表达式1;表达式2;表达式3) 语句中,说法不正确的是( b )。 A. 表达式1可以省略 B. 循环体语句不能为空语句 C. 循环体中若有两条以上语句必须用{}组成复合语句 D. 表达式2的值为0时,循环结束 7.C语言中 for( 表达式1;表达式2;表达式3) {循环体} 语句中,说法正确的是 ( a )。 A.表达式2可以省略 B.表达式中间的分隔符';' 可以省略 C.表达式1不能省略 D.表达式2不能省略,否则是死循环 23.设有类型说明int a= -2,在16位微机中分别用%o和%x打印a的值结果是( b )。 A. -2 -2 B. 177776 fffe C. 出错 D. 177776 -2 24.下列给数组元素赋初值的方法错误的是( d )。 A. int w[5]={1,2,3}; B. char c[5]={'a','b'}; C. int a[2][3]={1,2}; D. char c1[5]="China"; 25.转义字符是以( d)开头。 A. % B. & C. , D. , 1.函数原型的声明语句中,不需要的是( d )。 A. 函数类型 B. 参数个数 C. 函数名 D. 函数体 2.若a,b为int型变量,则执行以下语句后,a的值为( c )。 a=1;b=10; do{ b-=a; a++; }while(b-->0); A. 7 B. 6 C.5 D. 4 3.以下程序的输出结果是( d )。 #include main( ) { int a = 7;float x = 2.5, y = 4.7; printf("%g", x+a%3*(int)(x+y)%2/4); } A. 0 B. 2.75 C. 2 D. 2.5 4.若有宏定义如下: #define X 5 #define Y X+1 #define Z Y*X/2 则执行以下printf 语句后,输出结果是( a )。 printf("%d\n",Z); A. 7 B. 15 C. 13 D. 7.5 5.以下运算符中优先级最高的为( c )。 A. && B. + C. -> D. != 6.若有定义:int a=8, b=5, c; 执行语句c = a/b+0.4 后,c的值为( b )。 A. 1.4 B. 1 C. 2.0 D. 2 7.对以下程序段,while 循环执行的次数是( a )。 int k=0; while (k = 1) k++; A. 无限次 B. 有语法错,不能执行 C. 一次也不执行 D. 执行1次 8.以下所列的各函数首部中,正确的是( c )。 A. void play(var :Integer,var b:Integer) B. void play(int a,b) C. void play(int a,int b) D. void play(a as integer,b as integer) 9.关于语句:char a[ ]={'A','B','C','D'},b[ ]="ABCD";下面说法正确的是( b )。 A. 数组a与数组b占用的内存空间都是4字节 B. 数组b占用内存空间为5字节 C. 数组a的字符串长度为4 D. 数组a占用内存空间为5字节 10.以下各语句或语句组中,正确的操作是( c )。 A. char s[5]="abcde"; B. char *s; getchar(s); C. char *s; s="abcde"; D. char s[5]; scanf("%s", &s); 12.以下程序的输出结果是( b )。 #include main( ) { int a = 5, b = 4, c = 6, d; printf("%d\n", d=a void main(void) { int a = 1, b = 2, c = 3; printf("%d", c>b>a); } A. 2 B. 1 C. 0 D. 3 14.以下不正确的描述( a )。 A.在主函数之外定义的变量称为全局变量 B.在一个函数中既可以使用本函数中的局部变量,又可以使用全局变量 C.外部变量定义和外部变量说明的含义不同 D.在同一源文件中,全局变量与局部变量同名,则在局部变量的作用范围内,全局变量不起作用 15.下面标识符中,不合法的用户标识符为( a )。 A. for B. E2 C. a3AB D. _a 16.关于C语言文件叙述错误的是( a )。 A. C语言文件由记录组成 B. C语言中对文件的存取以字节为单位 C. C语言文件是流式文件 D. C语言对文件的读写是由库函数实现的 17.能够完成整型变量a与b的值互换的程序段是( b )。 A. t=a;b=a;t=b; B. t=a;a=b;b=t; C. b=a;a=b; D. t=a;a=b;b=a; 18.若a,b,c均为int型变量,则执行以下语句后a,b,c的值分别为( a )。 a=0,b=0,c=1; switch (c) { case 0:b++; case 1:a++; case 2:a++;b++; } printf("a=%d,b=%d\n",a,b); A.a=2,b=1 B.a=1,b=2 C.a=1,b=0 D.a=2,b=2 19.在C语言中,以下对函数不正确的描述是( d )。 A. 当用数组名作形参时,形参数组改变可使实参数组随之改变 B. 允许函数递归调用 C. 函数形参的作用范围只是局限于所定义的函数内 D. 函数说明必须在主调函数之前 20.若x为unsigned int型变量,则执行以下语句后的x值为( a )。 x=65535; x=(int) x; A. 65535 B. -32768 C. 1 D. -1 21.以下程序的输出结果是( d )。 main( ) { int a = 4, b = 5, c =6; if (a C., D.>> E.?: 3、 下列属于程序控制语句的是_bcde___。 A.int a; B.if(a>b)t=a; C.for(i=0;i0)x--; E.return n; 4、 下列关于"switch(表达式)"语句说法正确的是abcd____。 A.switch语句是多分支语句 B.switch后的(表达式)允许是任何类型 C.switch语句中允许有一个default子句,也可以没有 D.switch语句中的每个case子句的常量表达式的值必须互不相同 E.switch语句中的每个case子句必须有一个break语句 5、 下列语句定义数组正确的是bd____。 A.int a(10); B.int a[2+9]; C.int arr[0 to 3][0 to 4]; D.int arr[3][4]; E.int [3,4]; 6、 下列合法标识符是_cd___。 A.void B.define C.WORD D.a3_b3 E.case 7、 下列格式控制字符中能够输出整型数据的是abcd____。 A.%d B.%ld C.%lo D.%x E.%lf 8、 若有以下程序段,并且w和k都是整型变量: for(w=1;w<=k;w++) printf("*"); 则与上面程序段等价的循环语句是_abcd___。 A.for(w=k;w!=0;w--) printf("*"); B.w=k; while(w--!=0) printf("*") C.w=k; do { w--; printf("*"); }while(w!=0); D.for(w=k;w;--w) printf("*"); E.w=k; for(k=1;k0; E.y=a>b?a:b; 11、 下列说法正确的是bcde____。 A.在C程序中,无论是整数还是实数,都能被准确地表示 B.在C程序中,声明变量时为变量开辟内存空间 C.静态变量的生存期与整个程序的运行期相同 D.C语言中变量必须先说明后引用 E.C语言中空语句是合法的 12、 C语言提供的逻辑运算符有_bde___。 A.and B.|| C.or D.&& E.! 13、 下列语句中能够判断整型变量a、b、c的值是否能够构成三角形的语句是bc____。 A.if(a+b>c && a-bc && a+c>b && b+c>a) C.if(a-bc) 14、 在下列选项中,构成死循环的程序段是_abde___。 A.int i=100; while(1) { i=i%100+1; if(i>100)break; } B.for(;;) C.int k=1000; do { ++k;}while(k>=10000); D.int s=36; while(s);--s; E.for(i=1;;i++); 15、 下列关于符号常量正确的是_ade___。 A.符号常量用标识符表示 B.符号常量不允许被修改 C.符号常量允许在程序运行中改变 D.#define N 10 E.符号常量没有值和类型的含义 16、 下列不合法的实型常量有_abd___。 A.5E2.0 B.E-3 C.2E0 D.1.3E E.2E2 17、 把字符串"hello"赋给数组b的语句是_acde___。 A.char b[10]={'h','e','l','l','o'}; B.char b[10];b="hello"; C.char b[10];strcpy(b,"hello"); D.char b[]="hello"; E.char b[]={'h','e','l','l','o','\0'}; 18、 可以不要进行函数原型声明的函数是_bc___。 A.被调用函数的数据类型是int B.被调用函数定义的位置在调用函数之前 C.主函数main() D.被调用函数的数据类型是float E.被调用函数的数据类型是char 19、 关于数组说法正确的是_abc___。 A.数组的下标从0开始 B.数组的各个元素在内存中是连续存放的 C.C编译系统对数组下标是否越界不做检查 D.C语言允许对整型数组名进行整体赋值 E.数组不允许进行初始化,只能在程序运行期间赋值 20、 下列语句正确初始化的是_ace___。 A.char str[]="abcd"; B.char str[4]="abcd"; C.char str[4]={'a','b','c','d'}; D.char str[]={"a","b","c","d"}; E.char str[4]={97,98,99,100}; 21、 下列不合法的字符常量是_bd___。 A.'\010' B."B" C.'\X12' D.B E.'B' 22、 整型变量X和Y的值相等,且为非0值,以下选项中,结果不为0的表达式是_abcd___。 A.X||Y B.X|Y C.X&Y D.!X==!Y E.X^Y 23、 下列属于基本数据类型的是abce____。 A(int B(float C(double D(struct E(char 24、 关系表达式的结果可以是_bc___。 A(非0值 B(1 C(0 D(true E(false 25、 设已定义char s[9]="xinjiang"和int i,则下面的输出函数调用中正确的是__abc__。 A(printf("%s",s); B(for(i=0;i<9;i++)printf("%c",s[i]); C(puts(s); D(for(i=0;i<9;i++)puts(c[i]); E. for(i=0;i<9;i++)putchar(c[i]); 26、 下列整型常数表示正确的是_abce___。 A(123L B(123u C(0x123 D(123uL E(0123 27、 下列运算符中右结合的是acd____。 A(! B(+ C(++ D(?: E(>= 28、 设有语句float ave(int a[10]);float f;int w[10];则正确的函数调用形式是_bd___。 A(f=ave(w[ ]); B(f=ave(w); C(f=ave(w[10]); D(printf("%f",ave(w)); E(printf("%d",ave(w[10])); 29、 下列语句能够求出1+2+3+...+100的和的语句是_ae___。 A(for(i=1,sum=0;i<=100;sum+=i,i++); B(i=1;sum=0;while(i++<=100)sum+=i; C(i=1;sum=0;if(i++<=100)sum+=i; D(i=1;sum=0;do{sum+=i;}while(i<=100) E(i=1;sum=0;for(;i<=100;i++)sum+=i; 30、 下列合法的转义字符常量是_abc___。 A(„\n? B(„\r? C(„\t? D(„\x1a? E(„\101? 31、 逻辑运算符要求的运算量可以是_abcd___。 A(关系表达式 B(非零值 C(零值 D(数值表达式 E(逻辑量 32、 若有条件表达式"if(a10 && A<15 D(!(A<=10) && !(A>=15) E(A>10||A<15 34、 下列语句中能够输出正确的换行符的语句是abe____。 A.printf("\n"); B.putchar('\n'); C.scanf("%d\n"); D.getchar('\n'); E.printf("%c",'\n'); 判断题培训. 1、 C语言中的标准输入函数是getchar()。n 2、 所谓常量,就是在程序运行过程中其值可以改变的量。n 3、 表达式 x+=a/b 等价于表达式x=(x+a)/b。n 4、 若改变函数中与全局变量同名的局部变量的值,不会影响全局变量。y 5、 一个C程序可以由多个源程序文件构成,但其中只能有一个main()函数。y 6、 在C语言中 do-while 语句和for循环均是先执行循环体语句,再判断表达式。n 7、 在函数调用中将变量的地址作为实参传递给对应形参时,实现的是单向的值传递。y 8、 C语言中所有字符串都是以„\0?结束的。y 9、 语句char *f( char * s);声明了一个返回值为字符指针型的函数。y 10、 一个共用体变量所占字节数为各成员所占字节数的和。n 11、 假定int类型变量占用两个字节,其有定义:int x[10]={0,2,4};,则数组x在内存中所占字节数是6。n 12、 C 语言中,允许使用 goto 语句。y 13、 在switch语句中,case后若是多个语句可不必用花括号括起来构成复合语句。y 14、 C语言中,关系表达式的结果不是True就是False。n 15、 在main函数中定义的变量称为全局变量。n 16、 C语言中的一维数组的数组名是指向一维数组的指针。n 17、 strcmp( )函数的功能是比较两个字符串的大小,其返回值为逻辑值。n 18、 在C语言的编译系统对宏命令是在程序连接时进行处理的。n 19、 格式输入函数scanf( ) 的格式控制中不能没有格式控制字符。y 20、 C语言的函数可以嵌套定义,也可以嵌套调用。n 21、 C程序的说明语句char *s与char s[]作用和含义完全相同。n 22、 for(表达式1;表达式2;表达式3)语句中的表达式2必须是逻辑表达式。n 23、 可以把 define 定义为用户标识符。n 24、 返回语句return能立即从所在的函数退出,返回到下一个函数去继续执行。y 25、 语句int x= -1; printf ("%u",x) ;的输出结果为 65535。y 26、 指针变量是专门用来存放另一个变量地址的变量。y 27、 在C语言中形参与实参共用内存单元。n 28、 main()函数必须放在其它函数之前。n 29、 9.++或--无论作变量前缀还是后缀都可使变量的值增1或减1。y 30、 函数嵌套定义与嵌套调用是C语言的一大优点。n 31、 逻辑非运算符~的优先级最高。n 32、 C语言中,任一种表达式都可构成语句。n 33、 指针变量的值是可以改变的。y 34、 若有char s[20]= "abcdef"; 则strlen(s) 的值为20。n 35、 #include和#define不是C语句。y 36、 调用函数时,如果实参是简单变量它与对应形参之间的数据传递方式是单向值传递。y 37、 已知 int a[5],*p=a; 则a++和p++作用相同。n 38、 实参与其所对应的形参占用同一内存单元。n 39、 int *ptr( ); 则标识符ptr是一个函数名,该函数的返回值是指向int型数据的指针。y 40、 结构体变量的地址和它各成员的地址是同一地址。n 41、 对于C程序的函数,可以不加限制的递归调用。n 42、 共用体变量的地址和它各成员的地址是同一地址。y 43、 C语言中,#define M 1234 是宏定义语句。y 44、 sizeof()函数可用于求表达式的数值。n
本文档为【计算机二级题库】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_589748
暂无简介~
格式:doc
大小:143KB
软件:Word
页数:78
分类:生活休闲
上传时间:2018-01-16
浏览量:46