以下选项中可用作 C 语言合法用户标识符的是 A) 2a B)void C)-abc D) _123 答案:D 以下选项中合法的 C 语言赋值语句是 A)++i; B)a=b=34 C)a=3,b=9 D)k=int( a+b ); 答案:A 有以下程序段,其中的变量已定义为 int 类型 sum = pad = 5; pAd = sum++, pAd++, ++pAd; printf( “%d\n”, pad ); 程序段的输出结果是 A)4 B)5 C)6 D)7 答案:B sizeof( double ) 是 A)一个整型表达式 B)一个函数调用 C)一个双精度表达式 D)不合法的表达形式 答案:A 有以下程序 #include main() { int a=2, c=5; printf(“a=%%d,b=%%d\n”, a, c ); } 程序运行后的输出结果是 A)a=%d,b=%d B)a=%2,b=%5 C)a=%%d,b=%%d D)a=2,b=5 答案:A 有以下程序 #include #include main() { int a=1, b=4, c=2; double x=10.5, y=4.0, z; z = ( a+b )/c + sqrt( y ) * 1.2 / c + x; printf(“%f\n”, z); } 程序运行后的输出结果是 A)13.700000 B)14.000000 C)15.400000 D)14.900000 答案:A 若有定义语句:int a=12;,则执行语句:a+= a-= a*a;后,a 的值是 A)264 B)552 C)144 D)-264 答案:D C 语言程序的模块化是通过以下哪个选项实现的 A)变量 B)语句 C)函数 D)程序行 答案:C A)1.0/a/b/c B)1/(ab c) C)1.0/ab c D)1/a/b/(double)c 答案:A 有以下程序 #include main() { int x=010, y=10; printf(“%d,%d\n”, ++x, y–); } 程序运行后的输出结果是 A) 10,9 B)11,10 C)010,9 D) 9,10 答案:D 以下选项中叙述正确的是 A)C 语言的标识符可分为关键字、预定义标识符和用户标识符三类 B)C 语言的标识符可分为语句、变量和关键字三类 C)C 语言的标识符可分为函数名、变量和预定义标识符三类 D)C 语言的标识符可分为运算符、用户标识符和关键字三类 答案:A 以下选项中叙述正确的是 A)函数体必须由 { 开始 B)C 程序必须由 main 语句开始 C)C 程序中的注释可以嵌套 D)C 程序中的注释必须在一行完成 答案:A 以下选项中叙述正确的是 A)结构化程序的三种基本结构是循环结构、选择结构、顺序结构 B)C 语言源程序不编译也能直接运行 C)使用 N-S 流程图不能描述复杂算法 D)计算机能够直接运行 C 语言源程序,不必进行任何转换 答案:A 以下选项中叙述正确的是 A)使用三种基本结构就可以实现任何复杂算法 B)只要程序包含了三种基本结构中的任意一种,就是结构化程序 C)程序语法错误要在运行时才能发现 D)可运行 C 语言程序不需要包含 main()函数 答案:A 以下选项中,合法的 C 语言常量是 A) “\2.0 B)‘C++’ C) 1.234 D)2Kb 答案:C 以下选项中,合法的 C 语言实数是 A).2e0 B)3.1e0.4 C)E13 D)7.12E 答案:A 设 a,b,c 是整型变量且均已赋值,则以下选项中错误的是 A)a = (b = 3) = 1; B)a = (b = 2) + c; C)a = b = c + 10; D)a = 1 + (b = c = 2); 答案:A 有如下程序 #include main() { int x = 072; printf(“%d\n”, x+1); } 程序运行后的输出结果是 A)72 B)73 C)115 D)59 答案:D 以下选项中叙述正确的是 A)C 程序中的语句要经过编译才能转换成二进制机器指令 B)算法需要包含所有三种基本结构 C)有些算法不能用三种基本结构来表达 D)简单算法的操作步骤不能超过 20 步 答案:A 以下选项中叙述正确的是 A)复杂任务可以分解成简单子任务 B)C 语言程序中的所有函数必须保存在同一个源文件中 C)全部三种基本结构都包含的才是结构化程序 D)C 语言程序可以定义多个不同内容的 main 函数 答案:A 以下选项中,合法的数值型常量是 A) 092 B)“A” C) 3.1415 D)0xDH 答案:C 以下选项中,合法的实数是 A) E1.3 B) 4.5E2 C)7.11E D)1.2E1.2 答案:B 若有定义 int a, b, c; 以下选项中的赋值语句正确的是 A)a = (b = c) + 1; B)(a = b) = c = 1; C)a = (b == c) = 1; D)a + b = c; 答案:A 有如下程序 #include main() { int x = 0x13; printf(“%d\n”, x+1); } 程序运行后的输出结果是 A)13 B)14 C)12 D)20 答案:D 以下叙述中错误的是 A)书写风格良好的程序执行效率高 B)书写风格良好的程序易读性好 C)C 程序可以在一行上写多条语句 D)C 程序允许将一条语句分写在多行上 答案:A 以下选项中不能正确表示数值 10000 的实型常量是 A)1.0E4.0 B)1.E4 C)10E3 D)1.0e4 答案:A 设有定义:int a=0,b=1,c=1;以下选项中,表达式值与其它三 个不同的是 A) a=b=c B) b=a= =c C)a=c= =b D)c=a!=c 答案:B 设有两行定义语句: int scanf; float case; 则以下叙述正确的是 A)第 1 行语句不合法 B)两行定义语句都合法 C)第 2 行语句不合法 D)两行定义语句都不合法 答案:C 设有定义:double x=2.12;,以下不能完整输出变量 x 值的 语句是 A)printf(“x=%5.0f\n”,x); B)printf(“x=%f\n”,x); C)printf(“x=%lf\n”,x); D)printf(“x=%0.5f\n”,x); 答案:A 设有定义:int a,b; float x; ,则以下选项中对语句所作的注释 叙述错误的是 A)scanf(“%d%d%f”,&a,&b); /* 多余的格式符%f 完全不起作 用 / B)scanf(“%d%d”,&a,&b,&x); / 多余的输入项不能获得输入数 据 / C)scanf(“%d%f%d”,&a,&b,&x); / 输入项与格式符类型不匹配, 变量 b 和 x 得不到正确的输入数据 / D)scanf(“Input:%d%d”,&a,&b); / 格式串中允许加入格式符以 外的字符串 */ 答案:A 结构化程序由顺序、选择、循环三种基本结构组成,以下相关 叙述错误的是 A)三种基本结构不可以嵌套使用 B)顺序结构是按语句在程序中的先后顺序逐条执行,没有分支,没 有转移 C)选择结构是根据条件决定执行不同分支中的语句 D)循环结构是根据条件决定是否重复、重复执行多少次循环体语句 答案:A 以下能正确表述算式 sin(2πr+30°)的 C 语言表达式是 A)sin(23.14 r+3.1430/180.0) B)sin(2 πr+ 30 ) C)sin(2 3.14r+ 30 ) D)sin(2 3.14r+30 3.14/360.0) 答案:A 设有定义:int x=11,y=12,z=0;,以下表达式值不等于 12 的 是 A) (z,x,y) B)(z=x,y) C)z=(x,y) D) z=(x==y) 答案:D 以下可以将任意一个两位整数n的个位数与十位数对换的表达 式为 A)(n-n/10*10)10+n/10 B)n-n/10 10+n/10 C)n/10+(n-n/10) D)(n-n/10)*10+(n/10) 答案:A 设有以下程序段 int y; y=rand() % 30+1; 则变量 y 的取值范围是 A) 1<y<30 B)0≤y≤30 C) 0<y≤30 D)1<y≤30 答案:C 以下程序段中,循环次数不超过 10 的是 A)int i=10; do{ i=i+1;} while(i<0); B)int i=5; do{ i+=1;} while(i>0); C)int i=1; do{ i+=2;} while(i!=10); D)int i=6; do{ i-=2;} while(i!=1); 答案:A 以下叙述正确的是 A)计算机只接收由 0 和 1 代码组成的二进制指令或数据 B)计算机只接收由 0 和 1 代码组成的十进制指令或数据 C)计算机可直接接收并运行 C 源程序 D)计算机可直接接收并运行任意高级语言编写的源程序 答案:A 简单程序设计步骤中不包括 A)编码 B)确定算法 C)安装编译程序 D)调试 答案:C 关于 C 语言标识符,以下叙述错误的是 A)标识符可全部由数字组成 B)标识符可全部由下划线组成 C)标识符可全部由小写字母组成 D)标识符可全部由大写字母组成 答案:A 若有 C 语言表达式 2+34+7/3,则以下选项中关于执行顺序的 叙述,正确的是 A)先执行 3 4 得 12,再执行 2+12 得 14,再执行 7/3 得 2,最后 执行 14+2 得 16 B)先执行 34 得 12,再执行 7/3 得 2.5,最后执行 2+12+2.5 得 16.5 C)先执行 7/3 得 2,再执行 3 4 得 12,再执行 12+2 得 14,最后 执行 2+14 得 16 D)先执行 2+3 得 5,再执行 5*4 得 20,再执行 20+7 得 27,最 后执行 27/3 得 9 答案:A 若想给已定义为 int 型的变量 a,b,c,d 赋值为 1,以下选项中错 误的语句是 A)a=b, b=c, c=d, d=1; B)a=b=c=d=1; C)a=1, b=a, c=b, d=c; D)d=1, c=d, b=c, a=b; 答案:A 若有定义:char c; int d; 程序运行时输入:c=1,d=2, 能把字符 1 输入给变量 c、整数 2 输入给变量 d 的输入语句是 A)scanf(“c=%c,d=%d”, &c,&d); B)scanf(“c=%c d=%d”, &c,&d); C)scanf(“c=%d,d=%d”, &c,&d); D)scanf(“c=%d d=%d”, &c,&d); 答案:A 以下叙述正确的是 A) C 编译程序把文件后缀为.c 的源程序文件编译成文件后缀 为.exe 的可执行文件 B)C 编译程序把文件后缀为.c 的源程序文件编译成文件后缀为.obj 的二进制文件 C)C 编译程序把文件后缀为.obj 的二进制文件编译成文件后缀 为.exe 的可执行文件 D)链接程序把文件后缀为.c 的源程序文件链接成文件后缀为.exe 的可执行文件 答案:B 算法应当具有的特性不包括 A) 确定性 B)有穷性 C)美观性 D)可行性 答案:C 以下不属于 C 语言整数的是 A)12f B)25u C)-32 D)+20L 答案:A 有 C 语言表达式 23+4+15%3 ,关于其执行顺序,以下叙述正 确的是 A)先执行 2 3 得 6,再执行 6+4 得 10,再执行 15%3 得 0,最后 执行 10+0 得 10 B)先执行 23 得 6,再执行 15%3 得 5,最后执行 6+4+5 得 15 C)先执行 15%3 得 0,再执行 2 3 得 6,最后执行 6+4+0 得 10 D)先执行 15%3 得 3,再执行 4+3 得 7,再执行 2*3 得 6,最后 执行 6+7 得 13 答案:A 若想给已定义为 int 型的变量 a、b、c、d 赋整数 1,以下选项 中错误的语句是 A)d=c, c=b, b=a, a=1; B)d=c=b=a=1; C)d=(b=c=(a=1)); D)d=1, c=d, b=c, a=b; 答案:A 若有定义:int a; float b; double c; ,程序运行时输入: 1,2,3,能把 1 输入给变量 a、2 输入给变量 b、3 输入给变 量 c 的输入语句是 A) scanf(“%d,%f,%f”, &a,&b,&c); B)scanf(“%d%f%lf”, &a,&b,&c); C)scanf(“%d,%lf,%lf”, &a,&b,&c); D) scanf(“%d,%f,%lf”, &a,&b,&c); 答案:D 以下叙述正确的是 A)循环结构、选择结构、顺序结构都是结构化程序的基本结构 B)计算机可以直接执行 C 语言程序,不需要做任何转换 C)过于复杂的算法不能使用 N-S 流程图描述 D)只有不超过 20 步操作步骤的算法才是简单算法 答案:A 以下叙述正确的是 A) C 语言程序并不是必须要定义 main()函数 B)只使用三种基本结构即可解决任何复杂问题 C)只要程序包含了任意一种基本结构,就肯定是结构化程序 D)程序中的语法错误只有在运行时才能显现 答案:B 以下选项中,合法的 C 语言常量是 A) 2MB B)‘CPP’ C)”\1.0 D) 21.84 答案:D 以下选项中,合法的 C 语言实数是 A).1e0 B)E1 C)0.10E D)2.1e0.2 答案:A 设 a,b,c 是整型变量,且已正确赋初值,以下选项中错误的赋 值语句是 A)a = 2 = (b = 9) = 1; B)a = (b = 3) * c; C)a = b = c / 10; D)a = 1 % (b = c = 2); 答案:A 有如下程序 #include main( ) { int x = 072; printf(“X=%d\n”, x+1); } 程序运行后的输出结果是 A) X=73 B) X=59 C)X=115 D)X=72 答案:B 下面叙述正确的是 A)C 语言程序的语句经过编译和链接转换成二进制机器指令后才 能执行 B)任何算法需要包含三种基本结构中的两种以上 C)复杂算法是不能用三种基本结构来表达的 D)只要是简单算法,它的操作步骤都不会超过 20 步 答案:A 下面叙述正确的是 A)任何复杂任务都可以分解成简单子任务 B)C 语言程序的所有函数只能处于同一个源文件中 C)包含全部三种基本结构的程序才是结构化程序 D)C 语言程序可以定义多个不同内容的 main 函数 答案:A 以下选项中,合法的数值型常量是 A) ‘X’ B) 3.2 C)099 D)0xEH 答案:B 以下选项中,合法的实数是 A) 1.9E1.4 B)E1.1 C)2.10E D) 1.5E2 答案:D 若已有定义语句:int a, b, c;,且变量已正确赋初值,则以下 选项中正确的赋值语句是 A)a = (b = c) + 8; B)(a = b) = c = 9; C)a = (b == c) = ‘A’; D)a + b = c + 1; 答案:A 有以下程序 #include main( ) { int x = 0x13; printf(“INT:%d\n”, x+1); } 程序运行后的输出结果是 A) INT:12 B)INT:13 C) INT:20 D)INT:14 答案:C 关于程序设计基本概念,以下叙述错误的是 A)计算机可以直接执行由任意高级语言编写的程序 B)高级语言都有与之对应的编译程序或解释程序 C)用任何一种计算机高级语言都可以把算法转换为程序 D)结构化算法可以解决任何复杂的问题 答案:A 关于程序中的注释,以下叙述正确的是 A) 注释中间可以嵌套另一个注释 B)注释必须置于所说明的语句前或语句后 C)注释的内容必须放在/* 和 */之间 D)注释内容错误会导致编译出错 答案:C 以下不能用于实型数据的运算符是 A) + B)/ C)* D) % 答案:D 以下选项中,与 n=i++ 完全等价的表达式是 A)n=i,i=i+1 B)n+=i+1 C)i=i+1,n=i D)n=++i 答案:A 以下表达式的值与 x 无关、其值恒为真的是 A)0 < x < 5 B)x>10 && x<5 C)x>10 || x<5 D)x5 答案:A 设变量 m 为 float 类型,变量 n 为 int 类型,则以下能实现将 m 中的数值保留小数点后两位,第三位进行四舍五入运算的表达式 是 A)n=m100+0.5, m=n/100.0 B)m=(m 100+0.5)/100.0 C)n=m/100+0.5, m=n100.0 D)m=m 100+0.5/100.0 答案:A 以下叙述正确的是 A) 函数体内的定义语句和可执行语句允许任意交替出现 B)main()函数若不带参数,其后面的一对圆括号可省略 C) C 程序总是以 main()作为程序执行的起始行 D)C 语言中的语句之间必须用分号作为分隔符 答案:C C 语言中的基本数据类型包括 A)整型、实型、字符型 B)整型、字符型、数组 C)整型、实型、逻辑型 D)整型、实型、结构体 答案:A 以下不正确的定义语句是 A) long b=0L; B) unsigned int a= -100u; C)short c2=0123; D)int d=0x0; 答案:B 以下非法的字符常量是 A)’\n’ B)’\101’ C)’\x21’ D)’\0’ 答案:A 设有定义:int x=7,y=12;,则以下表达式值为 3 的是 A)(y%=x)-(x%=5) B)y%=(x%=5) C)y%=x-x%5 D)y%=(x-x%5) 答案:A 设有定义: int n = 1234; double x = 3.1415; 则语句: printf(“%3d,%1.3f\n”, n, x); 的输出结果是 A) 1234,3.141 B)123,3.142 C) 1234,3.142 D)123,3.141 答案:C 以下叙述错误的是 A)任何能通过编译和运行的算法都一定能得到所期望的结果 B)一个算法所包含的操作步骤应该是有限的 C)算法中每一条指令必须有确切的含义 D)算法可以用各种描述方法来进行描述 答案:A 关于程序模块化,以下叙述错误的是 A) 程序模块化可以提高调试程序的效率 B)程序模块化可以提高程序编制的效率 C)程序模块化可以提高程序代码复用率 D)程序模块化可以提高程序运行的效率 答案:D 以下是正确 C 语言标识符的是 A)_3 B)#3 C)&3 D)-3 答案:A 以下是正确 C 语言实型常量的是 A)1e-1 B)e-1 C)-1e D).e-1 答案:A 若想定义 int 型变量 a,b,c,d 并都赋值为 1,以下写法中错误的 是 A)int a=b=c=d=1; B)int a=1, b=1, c=1, d=1; C)int a,b,c,d; a=b=c=d=1; D)int a,b,c,d=1; a=b=c=d; 答案:A 若有定义:char c; double d; 程序运行时输入:1 2, 能把字符 1 输入给变量 c、数值 2 输入给变量 d 的输入语句是 A)scanf(“%c%lf”, &c,&d); B)scanf(“%d%lf”, &c,&d); C)scanf(“%c%f”, &c,&d); D)scanf(“%d%f”, &c,&d); 答案:A 以下叙述正确的是 A)所有程序行都必须用分号结束 B)C 语言程序由 C 语句组成,可以省略 main 函数 C)分号是 C 语句之间的分隔符 D) 在 C 语言中分号是语句的组成部分 答案:D 以下叙述正确的是 A) C 程序由函数组成,可以不包含 main 函数 B)每个 C 程序文件中的 main 函数都应当放在最前面 C)每个 C 程序文件都应当包含一个 main 函数 D) 每个 C 程序都只能有一个 main 函数 答案:D 若有定义:int a,b,c; 以下程序段的输出结果是 a=11; b=3; c=0; printf(“%d\n”,c=(a/b,a%b)); A)2 B)0 C)3 D)1 答案:A 有以下程序 #include main() { int a=2,b=3,c=4; a*=16 +(b++) – (++c); printf(“%d \n”,a ); } 程序运行后的输出结果是 A)30 B)28 C)15 D)14 答案:B 若有定义:double a, b, c; 能正确给 a,b,c 输入数据的语句是 A)scanf(” %lf %lf %lf”,&a, &b, &c ); B)scanf(” %f %f %f”,&a, &b, &c ); C)scanf(” %lf %lf %lf”,a, b, c ); D)scanf(” %lf %lf %lf”; *a, *b, *c ); 答案:A 输出语句:printf(“%d\n”,11+011);的输出结果是 A)22 B)20 C)022 D)021 答案:B 以下叙述正确的是 A)结构化程序的三种基本结构是循环结构、选择结构、顺序结构 B)C 语言程序不编译也能直接运行 C)有些算法不能用三种基本结构来表达 D)如果 C 语言程序实现的算法很简单,则计算机不进行任何代码 转换就能执行程序 答案:A 以下叙述正确的是 A)通过分解成简单子任务,可以完成任何复杂任务 B)每个结构化程序都要包含全部三种基本结构 C)C 语言程序的所有自定义函数只能写在同一个源文件中 D)C 语言程序允许使用多个 main 函数,只要它们的函数体各不相 同即可 答案:A 以下选项中合法的 C 语言常量是 A) 2EK B)‘C-STR’ C)”\1.0 D) 2014.1 答案:D 以下选项中,合法的 C 语言实数是 A).4e0 B)4.3e0.2 C)E4.8 D)0.29E 答案:A 设 a,b,c 已定义为整型变量,以下选项中不正确的赋值语句是 A)a = 3 = (b = 2) = 1; B)a = (b = 0) * c + 1; C)a = b = c / 1.0; D)a = 10 % (b = c = 2.0); 答案:A 有以下程序 #include main( ) { int x = 0x9; printf(“%c\n”, ‘A’+x); } 程序运行后的输出结果是 A)I B)J C)K D)H 答案:B 以下叙述中错误的是 A)计算机可以直接识别由十六进制代码构成的程序 B)可以连续执行的指令的集合称为“程序” C)“程序”是人与计算机“对话”的语言 D)计算机可以直接识别由 0 和 1 组成的机器语言代码 答案:A 在传统流程图中,用来表示输入输出的图形是 A) 椭圆形 B)长方形 C)菱形 D)平行四边形 答案:D 以下说法正确的是 A)赋值语句是一种可执行语句,应当出现在函数的可执行部分 B)赋值语句可以出现在函数中的任意位置 C)赋值语句可以出现在函数外单独执行 D)赋值语句可以出现在源程序中的任意位置 答案:A 若有定义: double x;,则表达式:x=0,x+10,x++ 的值是 A)1.0 B)10.0 C)11.0 D)0.0 答案:D 若变量已正确定义并赋初值,以下合法的赋值语句是 A)k=(m==n); B)k=int(m+n); C)k=-m-n D)k=m*n=1; 答案:A 设有定义: double x=5.16894;,则语 句 printf(“%lf\n “,(int)(x*1000+0.5)/1000.);的输出结果是 A)5.16900 B)5.16800 C)0.00000 D)输出格式说明符与输出项不匹配,产生错误信息 答案:A 以下选项中不是 C 语言数据类型的是 A) char B)float C) string D)int 答案:C 以下选项中不能在 C 语言程序中用作用户标识符的是 A) _3_14 B)scanf C)Float D) auto 答案:D 以下选项中可用作 C 程序合法整数的是 A)0x77 B)1 2 (数字间有一个空格) C)xff D)018 答案:A 以下选项中关于 C 语言算术表达式的叙述中错误的是 A)C 语言仅提供了+、-、*、/ 这 4 个基本算术运算符 B)C 语言采用的是人们熟悉的四则运算规则,即先乘除后加减 C)算术表达式中,运算符两侧类型不同时,将进行类型之间的转换 D)可以通过使用小括号来改变算术表达式中某些算术运算符的计 算优先级 答案:A