logo资料库

c语言期末练习题库.doc

第1页 / 共613页
第2页 / 共613页
第3页 / 共613页
第4页 / 共613页
第5页 / 共613页
第6页 / 共613页
第7页 / 共613页
第8页 / 共613页
资料共613页,剩余部分请下载后查看
章节 1 题干 A B C D E F 答案 难度 图片 C 语言源程序的基本单位是()。 过程 中 87 函数 子程序 标识符 B 1 下列字符序列中,可用作 C 标识符的一组字符序列是()。 S.b,sum,average,_above class,day,lotus_1,2day #md,&12x,month,student_n! D56,r_1_2,name,_st_1 D 中 88 1 以下标识符中,不能作为合法的 C 用户定义标识符的是()。 a3_b3 void _123 IF B 中 89 1 以下数据中,不正确的数值或字符常量是()。 0 5L o13 9861 中 90 1 以下数值中,不正确的八进制数或十六进制数是()。 0x16 16 -16 0xaaaa C 中 91 1 以下的选择中,正确的赋值语句是()。 a=1,b=2 j++ a=b=5; y=int(x) C C 中 92 1 以下运算符中,优先级最高的运算符是()。 ?: ++ && , B 中 93 1 在 C 语言中,能代表逻辑值“真”的是()。 True 大于 0 的数 非 0 整数 数 1 下列变量说明语句中,正确的是()。 char:a b c; char a;b;c; D 中 94 非 0 的 int x,z; int x;z; D 中 95 1 下列字符序列中,不可用作 C 语言标识符的是()。 b70 #ab symbol a_1 B 中 96 1 以下不正确的叙述是()。 在 C 程序中所用的变量必须先定义后使用 程序中,APH 和 aph 是两个不同的变量 若 a 和 b 类型相同,在执行了赋值语句 a=b;后 b 中的值将放入 a 中,b 中的值不变 当输入数值数据时,对于整型变量只能输入整型值;对于实型变量只 能输入实型值 1 以下标识符中,不能作为合法的 C 用户定义标识符的是()。 For Printf WORD D 中 97 sizeof(长度运算符) D 中 98 1 以下标识符中,不能作为合法的 C 用户定义标识符的是()。 answer to signed _if C 中 99 1 以下标识符中,不能作为合法的 C 用户定义标识符的是()。 putchar _double _123 INT A 中 100 1 以下数据中,不正确的数值或字符常量是()。 8.9e1.2 10 0xff00 82.5 A 中 101 1 以下数据中,不正确的数值或字符常量是()。 c 66 0xaa50 102 1 以下运算符中,优先级最高的运算符是()。 *= >= (类型) + A 中 C 中 103 1 以下运算符中,优先级最高的运算符是()。 || % ! == C 中 104 1 以下运算符中,优先级最高的运算符是()。 = != *(乘号) () D 中 105 1 以下叙述中不正确的是()。 一个好的程序应该有详尽的注释 值运算符的优先级最低 在 C 程序中,赋 在 C 程序中,j++;是一条赋值语句 C 程 序 中 的 #include 和
106 C 中 B 中 #define 均不是 C 语句 1 设 C 语言中,int 类型数据占 2 个字节,则 long 类型数据占()。 1 个字节 2 个 字 节 4 个字节 8 个字节 1 设 C 语言中,int 类型数据占 2 个字节,则 short 类型数据占()。 1 个字节 2 个 字 节 4 个字节 8 个字节 1 C 语言中,double 类型数据占()。 1 个字节 2 个字节 4 个字节 8 个字节 中 C 语言中,char 类型数据占()。 1 个字节 2 个字节 4 个字节 8 个字节 中 B 中 107 108 109 1 D A 110 111 B 中 "下列程序的输出结果是()。 1 设 C 语言中,int 类型数据占 2 个字节,则 unsigned 类型数据占()。 1 个字节 2 个字节 4 个字节 8 个字节 1 main() {char c1=97,c2=98; printf(""%d %c"",c1,c2); }" 1 y=10;x=y++;" x=10,y=10 97 98 "执行下列语句后变量 x 和 y 的值是()。 97 b a 98 a b x=10,y=11 x=11,y=10 x=11,y=11 B 中 C 中 112 113 1 下列数据中,为字符串常量的是()。 A "house" How do you do. $abc B 中 114 1 先用语句定义字符型变量 c,然后要将字符 a 赋给 c,则下列语句中正确的是()。 c="a"; c='a'; "下列语句的结果是()。 c="97"; C='97' 1 main() { int j; j=3; A 中 115 printf(""%d,"",++j); printf(""%d"",j++); }" 1 设 a=12,且 a 定义为整型变量。执行语句 a+=a-=a*=a;后 a 的值为()。 12 3,3 3,4 4,3 4,4 D 中 116 144 0 C 中 132 "已知 year 为整型变量,不能使表达式(year%4==0&&year%100!=0) 1 ||year%400==0 的值为“真”的数据是()。" 1990 1992 1996 2000 117 A 中 118 1 下列运算符中,不属于关系运算符的是()。 < > >= ! D 中 119 "假设所有变量均为整型,表达式:a=2,b=5,a>b?a++:b++,a+b 的值 1 是()。"7 1 以下不符合 C 语言语法的赋值语句是()。 a=1,b=2 ++j; a=b=5; B 中 120 8 9 2 y=(a=3,6*5); A 中 121 1 以下不符合 C 语言语法的赋值语句是()。 j++; j=j=5; k=2*4,k*4; y=float(j); D 中 122 1 "执行下列程序后,其输出结果是()。
a=9; main() {int a+=a-=a+a; printf(""%d\n"",a); }" 1 printf(""%d\n"",(int)(2.5+3.0)/3);" 有语法错误不能通过编译 2 18 "下列语句的输出结果是()。 C 中 -18 -9 123 9 124 1 0 C 中 "下列程序的输出结果是()。 5 1 不确定值 0 "下列程序的输出结果是()。 a=7,b=5; 1 main() {int printf(""%d\n"",b=b/a); }" 1 main() {int printf(""%d\n"",++a); }" 1 main() { a=011; 11 A 中 125 126 10 12 "下列程序的输出结果是()。 9 C 中 printf(""%d\n"",null); }" 1 int k=-1; printf(""%d,%u\n"",k,k);" 1 0 变量无定义 -1 "若 int 类型数据占两个字节,则下列语句的输出为()。 B 中 127 -1,-1-1,32767 -1,32768 -1,65535 D 中 6f 15 70 15 129 6f 16 128 "若 k,g 均为 int 型变量,则下列语句的输出为()。 D 中 printf(""%x\n"",g++);" "若 k 为 int 型变量,则以下程序段的执行结果是()。 16 "以下程序段的执行结果是()。 x;x=218.82631; printf(""%-6.2e\n"",x);"输出格式描述符的域宽不够,不能输出 输 1 k=017; g=111; printf(""%d\t"",++k); 71 1 double 出为 21.38e+01 输出为 2.2e+02 输出为-2.14e2 1 k=-8567; printf(""|%06D|\n"",k);" 格式描述符不合法,输出无定值 输出为|%06D|输 出 为 |0-8567| 输出为|-8567| 1 则以下程序段的执行结果是()。 ch='a'; 述符的类型不匹配,输出无定值 61,141,k=%d 61,141,k=%12 printf(""k=%%d\n"",k);" 因变量类型与格式描 输出项与格式描述符个数不符,输出为零值或不定值 "若 ch 为 char 型变量,k 为 int 型变量(已知字符 a 的 ASCII 十进制代码为 97), printf(""%x,%o,"",ch,ch,k); C 中 B 中 C 中 k=12; 130 131 132 1 若有以下定义:char s 的值不确定 使 s 的值包含 4 个字符 使 s 的值包含 3 个字符 1 若 a 是 float 型 变 量 , b 是 unsigned 型 变 量 , 以 下 输 入 语 句 中 合 法 的 是 ( )。 s='\092'; 则该语句()。 使 s 的值包含 1 个字符 定义不合法, B 中 133 scanf("%6.2f%d",&a,&b); scanf("%f%n",&a,&b); scanf("%f%3o",&a,&b);
a--; C 中 135 C 中 134 a=38.4,b=6.4,x; "下列程序的输出结果为()。 scanf("%f%f",&a,&b); "已知字母 a 的 ASCII 十进制代码为 97,则执行下列语句后的输出结果为()。 1 char a='a'; printf(""%d,%c\n"",a+'2'-'0',a+'3'-'0');" b,c a--运算不合法,故有语法错 98,c 格 式描 述和 输出 项不匹配,输出无定值 1 main() {int m=7,n=4; float x=m/2+n*a/b+1/2; printf(""%f\n"",x); }" 136 1 若给定条件表达式(M)?(a++):(a--),则其中表达式 M()。 和(M==0)等价 和 (M==1)等价 和(M!=0)等价和(M!=1)等价 1 main() {int i=(--a==b++)?--a:++b; j=a++;k=b; printf(""i=%d,j=%d,k=%d\n"",i,j,k); }" 1 i=2,j=1,k=3 a,b 为整型变量,二者均不为 0,以下关系表达式中恒成立的是()。 a*b/a*b==1 a/b*b/a==1 "以下程序的输出结果是()。 a/b*b+a%b==a i,j,k,a=3,b=2; i=1,j=1,k=3 i=4,j=2,k=4 i=1,j=1,k=2 28.500000 27.000000 27.500000 28.000000 a/b*b==a C 中 137 D 中 138 C 中 139 A 中 1 为 了 提 高 程 序 的 运 行 速 度 , 在 函 数 中 对 于 整 型 或 指 针 可 以 使 用 ( ) 型 的 变 量 。 B 中 141 auto register extern "以下程序的输出结果为()。 static i=010,j=10; 1 main() {int printf(""%d,%d\n"",++i,j--); 11,10 }" 1 C 语言中以下几种运算符的优先次序()的排列是正确的。 由高到低为:!,&&,||,算 术运算符,赋值运算符 由高到低为:!,算术运算符,关系运算符,&&,||,赋值运算符 由高到低为: 算术运算符,关系运算符,赋值运算符,!,&&,|| 由高到低为:算术运算符,关系运算符,!,&&,||, 赋值运算符 1 设 a 为整型变量,初值为 12,执行完语句 a+=a-=a*a 后,a 的值是()。 552 144 264 9,10 010,9 B 中 B 中 10,9 142 143 -264 "经下列语句定义后,sizeof(x),sizeof(y),sizeof(a),sizeof(b)在 D 中 144 1 微机上的值分别为()。 char x=65; float y=7.3; int a=100; double 1 long a=0xffffff; b=4.5;" 2,2,2,4 "用下列语句定义 a,b,c,然后执行 b=a、c='b'+b,则 b,c 的值是()。 1,2,2,4 1,4,2,8 2,4,2,8 C 中 145
int b; char 146 c;" 0ffffff 和 0x61 -1 和 98 -1 和 97 指向同一地址 C 中 C 语言中要求对变量作强制定义的主要理由是()。 便于移植 便于写文件 便 B 中 147 D 中 148 -63,-64 "执行下列语句后,a 和 b 的值分别为()。 1 int a,b; a=1+'a'; b=2+7%-4-'A';" 1 于编辑预处理程序的处理 便于确定类型和分配空间 1 main() {float x=3.6; "以下程序的输出结果是()。 98,-60 79,78 1,-60 i; int i=(int)x; printf(""x=%f,i=%d\n"",x,i); }" x=3,i=3 x=3.600000,i=3 x=3.600000,i=4 149 "经过以下语句定义后,表达式 z+=x>y?++x:++y 的值为()。 x=3 i=3.600000 C 中 150 C 中 D 中 151 i=2,sum=1 运行出现错误 5 "以下程序的运行结果是()。 3 6 1 int x=1,y=2,z=3;" 2 1 main() { i=1,sum=0; int sum=sum+1;i++; while(i<10) printf(""i=%d,sum=%d"",i,sum); i=10,sum=9 "以下程序的运行结果是()。 i=9,sum=9 }" 1 main() { int n; for(n=1;n<=10;n++) { } if(n%3==0) continue; printf(""%d"",n); }" 1 达式()。" 只能用逻辑表达式 式 可用任意表达式 1 表达式是()。" 1 k1=1; k2=2; k3=3; x=15; (!E==0) 12457810 "在 C 语言中,if 语句后的一对原括号中,用以决定分支的流程的表 1234567890 369 12 A 中 152 只能用关系表达式 只能用逻辑表达式或关系表达 D 中 153 "在以下给出的表达式中,与 do--while(E)语句中的(E)不等价的 (E>0||E<0) (E==0) (E!=0) C 中 154 "假定所有变量均已正确定义,下列程序段运行后 x 的值是()。
if(!k1) else if(k2) x--; else x=4; x=3;" 14 4 15 3 B 中 155 1 "执行下列语句后的输出为()。 int j=-1; if(j<=1) printf(""****\n""); else printf(""%%%%\n"");" **** %%%% %%%%c 有错,执行不正确 A 156 中 "下列程序的输出结果是()。 1 main() { int x=1,y=0,a=0,b=0; switch(x) { case 1:switch(y) { } case case 0:a++;break; 1:b++;break; case case 2:a++;b++;break; 3:a++;b++;break; } printf(""a=%d,b=%d\n"",a,b); a=1,b=0 a=2,b=1 a=1,b=1 a=2,b=2 "在 C 语言中,为了结束由 while 语句构成的循环,while 后一对圆括号 B 中 157 1 True 非 0 A 中 158 }" 1 中表达式的值应该为()。"0 1 "下列程序的输出为()。 main() int y=10; { while(y--); printf(""y=%d\n"",y); }" y=0 while 构成无限循环 y=1 y=-1 D 中 159 1 C 语言的 if 语句嵌套时,if 与 else 的配对关系是()。 每个 else 总是与它上面的最近 的 if 配对 每个 else 总是与最外层的 if 配对 每个 else 与 if 的配对是任意的 每 个 else 总是与它上面的 if 配对 1 for(j=0,k=-1;k=1;j++,k++) printf(""****\n"");()。" 循环结束的条件不合法 A 中 "设 j 和 k 都是 int 类型,则 for 循环语句 是 无 限 循 环 160 循环体一次也不执行 循环体只执行一次 B 中 1 下列数组说明中,正确的是()。 int array[][4]; int array[][]; array[3][]; 1 下列数组说明中,正确的是()。 static char str[]="China"; str="China"; static str1[],str2[];str2={"China"}; strcpy(str1,str2); 1 下列定义数组的语句中正确的是()。 #define size 10 static char str1[5],str2[]={"China"}; str1=str2; A 中 A 中 163 char str[];int num['10']; int n=5; int a[n][n+2]; char A 中 161 int array[][][5]; int static char str[]; char 164 str1[size],str2[size+2]; 165
1 下列定义数组的语句中不正确的是()。 static int a[2][3]={1,2,3,4,5,6}; a[2][3]={{1},{4,5}}; static int a[][3]={{1},{4}}; static int a[][]={{1,2,3},{4,5,6}}; static int D 中 166 static int a[2]={'1','2'}; static C 中 167 1 下列语句中,不正确的是()。 static char a[2]={1,2}; char a[2]={'1','2','3'}; 1 main() "若输入 ab,程序运行结果为()。 static char a[2]={'1'}; { char static a[3]; scanf(""%s"",a); printf(""%c,%c"",a[1],a[2]); }"a,b a, b, 程序出错 C 中 168 169 可 172 175 C 中 C 中 174 C 中 171 B 中 C 中 170 A 中 int char 程 序 中 第 一 1 下列说法不正确的是()。 主函数 main 中定义的变量在整个文件或程序中有效 不 同函数中,可以使用相同名字的变量 形式参数是局部变量 在一个函数内部,可以在复合语 句中定义变量,这些变量只在复合语句中有效 1 关于 return 语句,下列正确的说法是()。 不能在主函数中出现且在其他函数中均 可出现 必须在每个函数中出现 可以在同一个函数中出现多次 只能在除主函数之外 的函数中出现一次 1 在 C 语言的函数中,下列正确的说法是()。 必须有形参 形参必须是变量名 以有也可以没有形参 数组名不能作形参 1 在 C 语言程序中()。 函数的定义可以嵌套,但函数的调用不可以嵌套 函 数 的 定 义 不可以嵌套,但函数的调用可以嵌套 函数的定义和函数调用均可以嵌套 函 数的 定义 和函 数调用不可以嵌套 1 个函数 程序中的 main 函数 包含文件中的第一个函数 1 173 C 语言程序中,若对函数类型未加显式说明,则函数的隐含说明类型为()。 void double C 语言程序中,当调用函数时()。 实参和虚参各占一个独立的存储单元 C 语言执行程序的开始执行点是()。 程序中第一条可以执行语言 实 参 和 可以由用户指定是否共用存储单元 计算机系统自动确定是否 A 中 1 虚参可以共用存储单元 共用存储单元 1 数组名作为实参数传递给函数时,数组名被处理为()。 该数组的长度 的元素个数 该数组的首地址 该数组中各元素的值 1 以下描述中,正确的是()。 预处理是指完成宏替换和文件包含中指定的文件的调 用 预处理指令只能位于 C 源文件的开始 C 源程序中凡是行首以#标识的控制行都是预 预处理就是完成 C 编译程序对 C 源程序第一遍扫描,为编译词法和语法分析作 处理指令 准备 1 以下对 C 语言函数的描述中,正确的是()。 C 程序必须由一个或一个以上的函数组 成 C 函数既可以嵌套定义又可以递归调用 函数必须有返回值,否则不能使用函数 C 程序中有调用关系的所有函数必须放在同一个程序文件中 1 exce((v1,v2),(v3,v4,v5),v6);" 3 1 func((e1,e2),(e3,e4,e5));" 1 达式一种 函数调用作为函数表 函数调用作为语句、函数表达式或函 C 语言中函数调用的方式有()。 函数调用作为语句一种 "以下函数调用语句中实参的个数是()。 "以下函数调用语句中实参的个数是()。 函数调用作为语句或函数表达式两种 5 语法错误 C 中 176 C 中 177 A 中 178 A 中 179 A 中 180 4 3 2 该 数 组 5 6
181 "执行下面程序后,输出结果是()。 D 中 数参数三种 1 main() { a=45,b=27,c=0; c=max(a,b); printf(""%d\n"",c); } int max(x,y) x,y; int { int z; z=x; z=y; if(x>y) else return(z); 18 27 }"45 72 A 中 182 "以下程序的输出结果为()。 1 main() {int a=1,b=2,c=3,d=4,e=5; printf(""%d\n"",func((a+b,b+c,c+a),(d+e))); } int func(int x,int y) { return(x+y); }" 15 13 9 函数调用出错 B 中 183 #define S 345 int max(x,y); int x,y; C 中 }static char c; "下列程序运行结果为: 1 下列定义不正确的是()。 #define PI 3.141592 { 1 #define P 3 #define S(a) main() {int P*a*a 184 ar; ar=S(3+5); printf(""\n%d"",ar); 25 }" 192 29 27 B 中 185 "已知 p,p1 为指针变量,a 为数组名,j 为整型变量,下列赋值语句中 1 不正确的是()。"p=&j,p=p1; 186 1 经过下列的语句 int j,a[10],*p;定义后,下列语句中合法的是()。 p=p+2; p=a; p=&a[j]; p=10; D 中 p=a[2]+2; p=&(j+2); 1 两个指针变量不可以()。 相加 A 中 比较 187 相减 指向同一地址 中 188 p=a[5]; A int *p=x; int *p=&x; 1 若已定义 x 为 int 类型变量,下列语句中说明指针变量 p 的正确语句是()。 int p=&x; 1 关于指针概念说法不正确的是()。 一个指针变量只能指向同一类型变量 量的地址称为该变量的指针 变量之中 一 个 变 只有同一类型变量的地址才能放到指向该类型变量的指针 指针变量可以由整数赋,不能用浮点赋 C 中 *p=*x; 189 D 中 190
分享到:
收藏