C程序本科复习题(1)

  • 格式:doc
  • 大小:116.00 KB
  • 文档页数:2

1、C 语言程序的基本单位是( ) A) 程序行 B) 语句 C) 函数 D) 字符2、C 语言程序的三种基本结构是( ) A 、顺序结构,选择结构,循环结构 B 、递归结构,循环结构,转移结构 C 、嵌套结构,递归结构,顺序结构 D 、循环结构,转移结构,顺序结构、3、C 语言可执行程序的开始执行点是( ) A) 程序中第一条可执行语句 B) 程序中第一个函数 C) 程序中的main 函数 D) 包含文件中的第一个函数4、C 语言中,运算对象必须是整型数的运算符是 A) % B) \ C) %和\ D) *5、C 语言中函数返回值的类型是由()决定。

A) return 语句中的表达式类型 B) 调用函数的主调函数类型 C) 调用函数时临时 D) 定义函数时所指定的函数类型6、当调用函数时,实参是一个数组名,则向函数传送的是( ) A) 数组的长度 B) 数组的首地址 C) 数组每一个元素的地址 D) 数组每个元素中的值7、C 语言中数组下标的下限是( )。

A 、1 B 、0 C 、视具体情况 D 、无固定下限8、若变量已正确定义,要将a 和b 中的数进行交换,下面不正确的语句组是( ) A a=a+b,b=a-b,a=a-b; B t=a;a=b;b=t; C a=t;t=b;b=a; D t=b;b=a;a=t;9、x 、y 、z 被定义为int 型变量,若从键盘给x 、y 、z 输入数据,正确的输入语句是 A) input x,y,z; B) scanf("%d%d%d",&x,&y,&z); C) scanf("%d%d%d",x,y,z); D) read("%d%d%d",&x,&y,&z); 10、表达式:10!=9的值是 A) true B) 非零值 C) 0 D) 1 11、表示关系x<=y<=z 的c 语言表达式为 A) (X<=Y)&&(Y<=Z) B) (X<=Y)AND(Y<=Z) C) (X<=Y<=Z) D) (X<=Y)&(Y<=Z) 12、假定int 类型变量占用两个字节,其有定义:int x[10]={0,2,4};,则数组x 在内存中所占字节数是 A) 3 B) 6 C) 10 D) 20 13、若a 为int 类型,且其值为3,则执行完表达式a+=a-=a*a 后,a 的值是 A) -3 B) 9 C) -12 D) 6 14、若已定义x 和y 为double 类型,则表达式:x=1,y=x+3/2的值是 A)1 B)2 C)2.0 D)2.5 15、若有以下定义: char a; int b; float c; double d; 则表达式a*b+d-c 值的类型为 A) float B) int C) char D) double 16、设 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 的值为 A) 0 B) 1 C) 2 D) 3 17、设有说明语句:char a='\72';则变量a A) 包含1个字符 B) 包含2个字符 C) 包含3个字符 D) 说明不合法 18、下列标识符中不合法的是____ A 、s_name B 、_e C 、fox D 、3DS 、 19、下列不正确的转义字符是 A) '\\' B) '\" C) '074' D) '\0' 20、下列描述中不正确的是 A) 字符型数组中可以存放字符串 B) 可以对字符型数组进行整体输入、输出 C) 可以对整型数组进行整体输入、输出 D) 不能在赋值语句中通过赋值运算符"="对字符型数组进行整体赋值 21、下列说法中正确的是__ ______。

A 、在switch 语句中一定要使用break 语句 B 、在switch 语句中不一定要使用break 语句 C 、break 语句是switch 语句的一部分 D 、break 只能用于switch 语句中、 22、下列运算符其优先级最高的是_____。

A 、|| B 、&& C 、+ D 、= 23、以下正确的程序段是________. a)char str[20]; scanf("%s",&str); b)char *p; scanf("%s",p); c)char str[20]; scanf("%s",&str[2]) ; d)char str[20],*p=str; scanf("%s",p[2]); 24、有以下程序段 int k=0 while(k=1)k++; while 循环执行的次数是 A) 无限次 B) 有语法错,不能执行 C) 一次也不执行 D) 执行1次 25、语句:printf("%d",(a=2)&&(b= -2);的输出结果是___ A) 无输出 B) 结果不确定 C) -1 D) 1 26、在C 语言中,若对函数类型未说明,则函数的隐含类型是____类型 A) void B) double C) int D) char 27、在宏定义 #define PI 3、14159中,用宏名PI 代替一个 A) 单精度数 B) 双精度数 C) 常量 D) 字符串 28、以下选项中,不能正确赋值的是 A) char s1[10];s1="Ctest"; B) char s2[]={'C', 't', 'e', 's', 't'}; C) char s3[20]="Ctest"; D) char *s4="Ctest\n"; 29、有如下程序 long fib(int n) { if(n>2) return(fib(n-1)+fib(n-2)); else return(2); } main () { printf("%d\n",fib(3)); } 该程序的输出结果是 A) 2 B) 4 C) 6 D) 8 30、有如下程序段 int *p,a=10,b=1 p=&a; a=*p+b; 执行该程序段后,a 的值为 A) 12 B) 11 C) 10 D) 编译出错 31、有如下说明 int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a; 则数值为9的表达式是 A) *p+9 B) *(p+8) C) *p+=9 D) p+8 32.若已定义的函数有返回值,则以下关于该函数调用的叙述中错误的是( )。

A 函数调用可以作为独立的语句存在 B 函数调用可以作为一个函数的实参 C 函数调用可以出现在表达式中 D 函数调用可以作为一个函数的形参 33. 已知:int t=0; while (t=1){...} 则以下叙述正确的是( )。

A 循环控制表达式的值为0 B 循环控制表达式的值为1 C 循环控制表达式不合法 D 以上说法都不对 34.若运行时给变量x 输入12,则以下程序的运行结果是( )。

main () {int x,y; scanf ("%d",&x ); y=x>12?x+10:x-12; printf ("%d \n",y ); } A 0 B 22 C 12 D 10 35. 以下程序的输出结果是( )。

main() {int s[10]={1,2,3,4,5,6,7,8,9,10}; printf("%d\n",s[10]); } A 、10 B 、9 C 、11 D 、不定36.以下程序运行后,输出结果是( )main(){inta[3][3]={{3,2,1},{4,5,6},{2,9,2}};int i , j, s=0;for(i=0;i<3;i++)for(j=0;j<3;j++)if(i = = 2-j) s=s+a[i][j];printf("s=%d",s);}A 6B 7C 8D 937.一个二维数组 int student[5][6], 其第2行第3列元素的正确表示是:( )A student [3][2]B student[2][3]C student [2,3]D student[1][2]38.若有代数式3ae/bc,则不正确的C 语言表达式是( )A.a/b/c*e*3B.3*a*e/b/cC.3*a*e/b*cD.a*e/c/b*339.以下不正确的叙述是( )A.在C 程序中,逗号运算符的优先级最低B.在C 程序中,APH 和aph 是两个不同的变量C.若a 和b 类型相同,在计算了赋值表达式a=b 后b 中的值将放入a 中,而b 中的值不变 D.当从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输入实型数值40.已知字母A 的ASCII 码为十进制数65,且c2为字符型,则执行语句c2='A'+'6'-'3';后,c2中的值为( ) A.D B.68 C.不确定的值 D.C41.printf 函数中用到格式符%5s,其中数字5表示输出的字符串占用5列.如果字符串长度以大于5,则输出按方式( );如果字符串长度小于5,则输出按方式( ) A.从左起输出该字串,右补空格B.按原字符长从左向右全部输出C.右对齐输出该字串,左补空格D.输出错误信息42.判断char 型量ch 是否为大写字母的正确表达式是( )A.‘A ’<=ch<=‘Z ’B.(ch>=‘A ’)&(ch<=‘Z ’)C.(ch>=‘A ’)&&(ch<=‘Z ’)D.(‘A ’<=ch)AND(‘Z ’>=ch)43.以下语句语法正确的是:( ) A.if(x>0) printf(“%f ”,x)else printf(“%f ”,-x);B.if(x>0){x=x+y;printf(“%f ”,x);}else printf(“%f ”,-x)C.if(x>0){x=xy; printf(“%f ”,x);};else printf(“%f ”,-x);D.if(x>0){x=x+y;printf(“%f ”,x)}else printf(“%f ”,-x);44.若w=1,x=2,y=3,z=4,则表达式w<x?w:y<z?y:z 的值是:( ) A.4 B.3 C.2D.145.设有程序段 int k=10; while (k=0)k=k-1; 则下面描述中正确的是 ( )A while 循环执行10次B 循环是无限循环C 循环体语句一次也不执行D 循环体语句执行一次46.对for(表达式1;; 表达式3)可理解为( )A. for(表达式1;0; 表达式3)B. for(表达式1;1;表达式3)C. for(表达式1;表达式1;表达式3)D. for(表达式1;表达式3;表达式3)47.若i 为整型变量,则以下循环执行的次数是( )for(i=2;i=0;) printf(“%d ”,i)A.无限次B.0次C.1次D.2次48.有以下定义int a=0;double b=1.25;char c=’A ’;#define d 2则下面语句中错误的是( ) A a++ B b++ C c++ D d++ 49. 以下程序运行后,输出结果是______ main() { int m=0256,n=256; printf("%o %o\n",m,n); } A 256, 256 B 256,400 C 400,256 D 400,400 50.下面程序段( ) x=3; do{y=x--; if(!y) {printf(“*”); continue;} printf(“#”);} while(1<=x<=2); A.将输出## B.将输出##* C.是死循环 D.含有不合法的控制表达式 51. 在C 语言中,引用数组元素时,其数组下标的数据类型允许的是( ) A.整型常量 B.整型表达式 C.整型常量或整型表达式 D.任何类型的表达式 52.若有说明: int a[10];则对a 数组元素的正确引用是( ) A .a[10] B. a[3.5] C. a(5) D. a[10-10] 53.以下对二维数组a 正确说明是( ) A. int a[3][ ]; B. float a(3,4); C. double a[1][4]; D. float a(3)(4); 54.若有说明: int a[3][4];则对a 数组元素的正确引用是( ) A. a[2][4] B. a[1,3] C. a[1+1][0] D. a(2)(1) 55. 设有以下宏定义: #define N 3 #define Y(n) ( (N+1)*n) 则执行语句:z=2 * (N+Y(5+1));后,z 的值为 A) 出错 B) 42 C) 48 D) 54 56.若二数组a 有m 列,则计算任意元素a[I][j]在数组中位置的分式为__________ A.I*m+j B.J*m+I C.I*m+j-1 D.I*m+j+1 57.对以下说明语句的正确理解是( )int a[10]={6,7,8,9,10}; A.将5个初值依次赋值给a[1]至a[5] B.将5个初值依次赋值给a[0]至a[4] C.将5个初值依次赋值给a[6]至a[10] D.因为数组长度与初值的个数不同,所以此语句不正确 58. 下列运算符中,不属于关系运算符的是___________。