1、单选题(每题1分,共30分)1.下列有关 C语言的叙述中错误的就是( )A. C 语句必须以分号结束B. 任何一个 C程序中有且只有一个主函数C. 复合语句在语法上可被瞧作一条语句D. C 程序中对数据的任何操作都可由运算符实现2.以下不能定义为用户标识符的就是( )A. MAINB. _HJC. 2ongD. LINE13.以下能正确定义一维数组的就是( )A. int a5=0,1,2,3,4,5;B. int a5= ”012345”;C. char a = ”012345”;D. char a5=0,1,2,3,4,5;4.执行下列程序段后输出的结果就是( )x = 9;while (
2、x 7) printf( “*”); x - -; A. *B. *C. *D. *5.设 char str110 = “ABCDE”, str210 = “xyz”;则执行语句 printf( “%d”, strlen(strcpy(str1, str2); 后的输出结果就是( )A. 9B. 8C. 5D. 36.若用数组名作为函数调用的实参 , 则传递给形参的就是( )A. 数组的首地址B. 数组第一个元素的值C. 数组中全部元素的值D. 数组元素的个数7.在 C程序中 , 若未在函数定义时说明函数类型 , 则函数默认的类型为( )A. voidB. doubleC. intD. cha
3、r 8.下面不能正确进行字符串赋值操作的语句就是( )A. char s5=ABCD;B. char s5; s=ABCD;C. char *s;s=ABCDEF;D. char *s=ABCD;9.设有说明 int s5=1,3,5,7,9; int *p=s; 则下列表达式中值为 3 的就是( )A. +pB. +(*p)C. *(+p)D. *(p+=2)10.下面程序的输出结果就是( )int m=13;int fun( int x, int y) int m=3; return( x*y-m); main( ) int a=7,b=5;printf( “%d n”, fun(a,b)
4、/m); A. 1B. 2C. 3D. 1011.以下 4 组用户定义标识符中,全部合法的一组是( )A. )_total clu_1 sumB. if -max turbC. txt REAL 3COMD. int k_2 _00112.以下程序的输出结果是( )#includemain( )int a = 1, b = 2, c = 3;printf( “%d”, cba);A. 2B. 1C. 0D. 313.以下选项中正确的叙述是( )A. 在 C 语言中, main 函数必须位于文件的开头B. C 语言每行中只能写一条语句C. C 语言本身没有输入、输出语句D. 对一个 C语言进行编
5、译预处理时,可检查宏定义的语法错误14.设有定义: int a,*pa=&a; 以下 scanf 语句中能正确为变量 a 读入数据的是( )A. scanf(%d,pa);B. scanf(%d,a);C. scanf(%d,&pa);D. scanf(%d,*pa);15.若有以下程序段,int c1=1,c2=2,c3;c3=1.0/c2*c1;则执行后, c3 中的值是( )A. 0B. 0.5C. 1D. 216.能正确表示逻辑关系:“ a=10 或 a0”的 C语言表达式是( )A. a=10 or a=0|a=10 &a=10 ab?(ac?a:c): b);A. 5B. 4C.
6、6D. 不确定20.下面是对数组 a 的初始化,其中 不正确 的是( )A. a5 ABCDB. a5 A ,B ,C ,DC. a5 D. a5 ABCDE/a6= ABCDE 因为会自动加一个 021.以下不是 C 语言的特点的是( )A. C 语言简洁、紧凑B. 能够编制出功能复杂的程序C. C 语言可以直接对硬件进行操作D. C 语言移植性好22.以下不正确的 C 语言标识符是( )A. ABCB. abcC. a_bcD. ab.c23.一个 C 语言程序是由( )A. 一个主程序和若干子程序组成B. 函数组成C. 若干过程组成D. 若干子程序组成24.一个算法应该具有 “确定性 ”
7、等 5 个特性,对另外 4 个特性的描述中错误的是( )A. 有零个或多个输入B. 有零个或多个输出C. 有穷性D. 可行性25.设变量 a 是整型, f 是实型, i 是双精度型,则表达式 10+a+i*f 值的数据类型为( )A. intB. floatC. doubleD. 不确定26.在 C 语言中, char型数据在内存中的存储形式是( )A. 补码B. 反码C. 源码D. ASCII 码27.有如下程序,输入数据: 12345M678后(表示回车), x 的值是( )正在上传取消A. 12345B. 123C. 45D. 34528.若有以下定义 int a,b; float x,
8、则正确的赋值语句是( )A. a=1,b=2B. b+;C. a=b=5D. b=int(x);ABCD 纠错 标记29.以下程序的执行结果是( )正在上传取消A. 11,10B. 9,10C. 11,9D. 10,9ABCD 纠错 标记30.巳知字母 A 的 ASCII 码是 65,以下程序的执行结果是( )正在上传取消A. A,YB. 65,65C. 65,90D. 65,89阅读程序题(每题4分,共20)1.#include main()_ char grade=C;switch(grade)case A: printf(“90-100n”);case B: printf(“80-90n
9、”);case C: printf(“70-80n”);case D: printf(“60-70n”); break;case E: printf(“60n”);default : printf(“error!n”);运行结果为:_2.#include main() int y=9;for(;y0;y- -)if(y%3=0) printf(%d”,- -y);运行结果为_3.#include main() int i,sum=0; i=1;do sum=sum+i; i+; while(i=10);printf(“%d”,sum);运行结果为:_4.#include main( ) int
10、 i,k,a10,p3;k=5;for(i=0;i10;i+)ai=i;for(i=0;i3;i+)pi=ai*(i+1);for(i=0;i3;i+)k+=pi*2;printf(%dn,k);运行结果为:_5.#include int m33=1,2,3;int n33=1,2 ,3;main( ) printf(“%d,”, m10+n00);printf(“%dn”,m01+n10);运行结果为:_判断题(每题1分,共15分)1.若i =3,则printf(%d,-i+);输出的值为 -32.表达式 (j=3, j+) 的值是33.C语言中只能逐个引用数组元素而可以一次引用整个数组 4
11、.参加位运算的数据只能是整型的数据5.若有 int i=10,j=2;则执行完i*=j+8;后的值为1006.若 a=3,b=2,c=1 则关系表达式(ab)=c 的值为07.若有 # define S(a,b) a*b 则语句 area=S(3,2); area的值为58.若有宏定义:#define S(a,b) t=a;a=b;b=t虽然变量t没定义,宏定义中已经定义,可直接使用9.#define 和printf 都是C语句10.关系运算符b)=c 的值等同914.while和dowhile循环不论什么条件下它们的结果都是不相同的.15.char c10=Very Good; 是一个合法的
12、为字符串数组赋值的语句填空题(每题2分,共30分)1.表达式3 + 1 / 2的计算结果是_2.请写出以下程序的输出结果_main() int a = 100; if( a 100) printf(“%dn”, a 100); else printf(“%dn”, a 100); 3.表达式(float)(int)(5/2)+2.5)的值是_.4.阅读下面程序,程序执行后的输出结果为_#include stdio.hmain() char a,b;for(a=0,b=9;ab;a+,b-) printf(%c%c,a,b); printf(n); 5.以下程序段的输出结果是_int i = 5
13、, sum = 1; do sum += i+; while( i y) if(xz)printf(%d,x); else printf(%d,y); printf(%dn,z);11.若x为double型变量,请写出运算x = 3.2, +x后表达式的值_和变量的值_12.若有定义:int a=8,b=5,c 执行语句c=a/b+0.4后,c的值为_13.当计算机用两个字节存放一个整数时,其中能存放的最大十进制整数是_._14.若从键盘输入58,则以下程序输出的结果是_main() int a;scanf(%d,&a);if(a50)printf(%d,a);if(a40)printf(%d
14、,a);if(a30)printf(%d,a);15.以下程序的输出结果是_main() int a=0;a+=(a=8); printf(%dn,a); 编程题(10,10,15,20)1、键盘输入2个加数,再输入答案,如果正确,显示“right”,否则显示“error”2从键盘输入两个数,求出其最大值(要求使用函数完成求最大值,并在主函数中调用该函数)3、从键盘输入你和你朋友的年龄,编成判断谁的年龄最大,并打印最大者的年龄。4. 编程实现如下功能:从键盘输入一行字符,统计其中大写英文字符,小写英文字符和其他字符的个数。答案:综合练习五一、单选题1-5 DCCCD 6-10ACCCB11-1
15、5ACCAB 16-20 DDACD24-25 BDBBC 26-30 DBBAD二、阅读程序题1、 70-8060-702、8523、554、215、3,0三、判断题1-5 对对错对对6-10 错错对错对11-15 错对对对错四、填空题1、32、03、4.5000004、09182736455、66、空 1:x = 127空 2:x =127空 3:x =177空 4:x =7f空 5:x =1277、7, 5, 1, 7, 80, 08、空 1:65535空 2:-32768空 3:1111 1111 1111 1111,1000 0000 0000 00009、空 1:顺序空 2:条件分
16、支 【或】 选择空 3:循环10、5311、4.2 4.212、113、65535无输出15、16编程题1、#include “stdio.h”main( )int a,b,c; printf(“please input a and bn”);scanf (%d,%d”,&a,&b); printf(“please input the answer for a+bn”);scanf (%d”,&c); if (c=a+b) printf(“rightn”); else printf(“errorn”);2main()float max(float x,float y); float a,b,m
17、;scanf(%f,%f,&a,&b);m=max(a,b);printf(Max is %fn,m);float max(float x,float y)undefinedfloat temp;if (xy)temp=x; x=y; y=temp;return(x);3、#include main() int yourAge, hisAge;printf(Please enter your age:);scanf(%d, &yourAge); /*输入你的年龄yourAge*/printf(Please enter your friends age:);scanf(%d, &hisAge);
18、 /*输入你朋友的年龄hisAge*/if (yourAge = hisAge)undefinedprintf(You are older! Your age is = %dn, yourAge); if (hisAge yourAge)undefinedprintf(Your friend is older! HisAge age is = %dn, hisAge);4.#include #include #define ARR_SIZE 80main()undefinedchar strARR_SIZE;int len, i, letter = 0, digit = 0, space = 0, others = 0; printf(Please input a string:); gets(str); len = strlen(str); for (i=0; i= a & stri = A & stri = 0 & stri = 9 ) digit +; /*统计数字字符*/ elseothers +; /*统计其它字符的个数*/ printf(English character: %dn, letter); printf(digit character: %dn, digit);printf(other character: %dn, others);