2019最新大学C语言考试题(含答案).pdf
《2019最新大学C语言考试题(含答案).pdf》由会员分享,可在线阅读,更多相关《2019最新大学C语言考试题(含答案).pdf(100页珍藏版)》请在三一文库上搜索。
1、2019 最新大学 C语言考试题(含答案) 姓名成绩 温馨提示:同学们,经过培训学习,你一定积累了很多知识,现在请认 真、仔细地完成这张试题吧。加油! 一单项选择题 1. 在 C语言中,以 D 作为字符串结束标志 A)n B) C) 0 D)0 2. 下列数据中属于“字符串常量 ”的是(A )。 A.“a” B.ABC C.abc0 D.a 若干个字符构成字符串 在 C语言中,用单引号标识字符;用双引号标识字符串 选项 B,C,分别用 和 标识字符串 选项 D,标识字符。 3、以下说法中正确的是( C )。 A 、C语言程序总是从第一个定义的函数开始执行 B 、在 C语言程序中,要调用的函数必
2、须在main( )函数中定义 C 、C语言程序总是从main( )函数开始执行 D 、C语言程序中的main( )函数必须放在程序的开始部分 4. 下列关于 C语言的说法错误的是( B )。 A) C 程序的工作过程是编辑、编译、连接、运行 B) C 语言不区分大小写。 C) C 程序的三种基本结构是顺序、选择、循环 D) C 程序从 main 函数开始执行 5. 下列正确的标识符是(C )。 A.-a1 B.ai C.a2_i D.int t 6下列 C语言用户标识符中合法的是( B ) 。 A)3ax B)x C)case D)-e2 E)union 7下列四组选项中,正确的C语言标识符是
3、( C )。 A) %x B) a+b C) a123 D) 123 8、下列四组字符串中都可以用作C语言程序中的标识符的是( A )。 A 、print _3d db8 aBc B、Iam one_half start$it 3pai C 、str_1 Cpp pow while D、Pxq My-book line# His.age 9.C 语言中的简单数据类型包括(D )。 A 、整型、实型、逻辑型 B、整型、实型、逻辑型、字符型 C 、整型、字符型、逻辑型 D、整型、实型、字符型 10. 在 C语言程序中,表达式5%2的结果是 C 。 A)2.5 B)2 C)1 D)3 11如果 in
4、t a=3,b=4;则条件表达式“aage D) (*p).age 33. 设有如下定义: struck sk int a; float b; data; int *p; 若要使 P 指向 data 中的 a 域,正确的赋值语句是 C A) p= B) p=data.a; C) p= D)*p=data.a; 34. 设有以下说明语句: typedef struct stu int a; float b; stutype; 则下面叙述中错误的是( D )。 A、struct是结构类型的关键字 B、struct stu是用户定义的结构类型 C、a 和 b 都是结构成员名 D、stutype是用户
5、定义的结构体变量名 35 语句 int *p;说明了 C 。 A)p 是指向一维数组的指针 B)p 是指向函数的指针, 该函数返回一int型数据 C)p 是指向 int型数据的指针 / 指针的定义教材P223 D)p 是函数名 , 该函数返回一指向int型数据的指针 36下列不正确的定义是(A )。 A. int *p= B.int *p,i; Cint i,*p= D.int i,*p; 37. 若有说明: int n=2,*p=则 B 是对指针变量p 的正确定义和初始化。 A)int p=*a; B)int *p=a; C)int p= D)int *p= 39. 若有说明语句“int a
6、5,*p=a;”, 则对数组元素的正确引用是( C )。 A.ap B.pa C.*(p+2) D.p+2 40. 有如下程序 int a10=1,2,3,4,5,6,7,8,9,10,*P=a; 则数值为 9 的表达式是 B A) *P+9 B) *(P+8) C) *P+=9 D) P+8 一、 读程序 基本输入输出及流程控制 1. #include main() int a=1,b=3,c=5; if (c=a+b) printf(“yesn“); else printf(“non“); 运行结果为: no 详见教材 p89 选择结构 详见教材 p91 关系符号 详见附录 D p378
7、符号的优先级 =表示判断符号两边的值是否相等;=表示将符号右边的值赋给左边的变 量 本题考点是选择结构3 种基本形式的第二种 选择结构三种一般形式中的“语句 ”皆为复合语句,复合语句要用 括 起来,只有当复合语句中只包括一条语句时可以省略 ,此题即如此, 因此两个 printf操作没有加 若 c=a+b 成立,则执行printf(“yesn“); 否则(即 c=a+b 不成立),执行printf(“non“); +的优先级高于 =,因此先算a+b, 值为 4, 表达式 5=4 不成立,因此执 行 printf(“non“);即输出字符串no 2. #include main() int a=1
8、2, b= -34, c=56, min=0; min=a; if(minb) min=b; if(minc) min=c; printf(“min=%d“, min); 运行结果为: min=-34 详见教材 p89 选择结构 本题考点是选择结构3 种基本形式的第一种 一共包含了两个选择结构(两个if语句) 定义变量,并赋值此时 a=12, b= -34, c=56, min=0 将 a 中值拷贝,赋给min,覆盖了 min 中的 0,此时 min 中的值被更 新为 12。 若 minb 成立,则执行min=b; 若 minc 成立,则执行min=c; 输出 min 中的值 12 大于 -3
9、4, 第一个 if语句的表达式成立,因此执行min=b; 执行后 min 中的值被更新为-34. -34 小于 56, 第二个 if语句的表达式不成立,因此不执行min=c; 最后输出 min 中的值,为 -34. 3. #include main() int x=2,y= -1,z=5; if(x=0), 执行 z=z+1; 输出 z 2-1 ,表达式 x main() float a,b,c,t; a=3; b=7; c=1; if(ab) t=a;a=b;b=t; if(ac) t=a;a=c;c=t; if(bc) t=b;b=c;c=t; printf(“%5.2f,%5.2f,%5
10、.2f“,a,b,c); %为求余运算 运行结果为: 1.00, 3.00, 7.00 详见教材 p72 数据的输出形式 本题包含了3 个 if语句,每个if语句后的 都不可省略,因为每个 中都包含了多条语句 若表达式 ab 成立,则执行 t=a;a=b;b=t; 若表达式 ac 成立,则执行 t=a;a=c;c=t; 若表达式 bc 成立,则执行 t=b;b=c;c=t; 输出 a,b,c中的值,要求输出的每个数据宽度为5 个空格,小数部分保留 2 位,数据右对齐 3 小于 7, 因此表达式ab 不成立,因此不执行t=a;a=b;b=t; 3 大于 1,因此表达式ac 成立,则执行 t=a;
11、a=b;b=t;。第一句,将a 中的 3 拷贝,粘贴到t 中;第二句,将c 中的 1 拷贝,粘贴到a 中,覆盖 掉先前的 3;第三句。将t 中的 3 拷贝到 c 中,覆盖掉c 中先前的 1. 执 行完复合语句后实现了a,c 元素的值的互换,a 为 1,c 为 3,t 为 3,。 7 大于 c 中的 3,因此 bc 成立,执行则执行t=b;b=c;c=t;,过程同上, 执行后 b 为 3,c 为 7,t 为 7 此时输出 a,b,c中的值为 1.00, 2.00, 7.00 5 #include main ( ) float c=3.0 , d=4.0; if ( cd ) c=5.0; els
12、e if ( c=d ) c=6.0; else c=7.0; printf ( “%.1fn ”,c ) ; 运行结果为: 7.0 此题为 if.else.语句的嵌套,第二if.else.作为第一个 if.else.语句 else 部分的复合语句。 若表达式 cd 成立,则执行c=5.0; 否则(表达式cd 不成立) 若表达式 c=d 成立,则执行c=6.0; 否则,执行c=7.0; 输出 c 中的值 3.0 小于 4.0 ,因此表达式cd 不成立,执行第二个if else 。 3.0 不等于 4.0 ,因此表达式c=d 不成立,执行c=7.0 ,将 7.0 赋给 c, 覆盖掉 c 中的 3
13、.0 ,此时 c 中的值为 7.0 输出此时的c 中的值 6. #include main() int m; scanf(“%d“, if (m = 0) if (m%2 = 0)printf(“%d is a positive evenn“, m); else printf(“%d is a positive oddn“, m); else i f (m % 2 = 0) printf(“%d is a negative evenn“, m); else printf(“%d is a negative oddn“, m); 若键入 9,则运行结果为: -9 is a negative od
14、d 7. #include main() int num=0; while(num main( ) int sum=10,n=1; while(n main() int num,c; scanf(“%d“, do c=num%10; printf(“%d “,c); while(num/=10)0); num=0 printf(“n“); 从键盘输入23,则运行结果为:3 2 详见教材 p117 循环结构; p60 复合的赋值运算符 do while(表达式 ); 先无条件执行循环体,再判断循环条件。注意while (表达式)后有分号 定义整型变量num ,c; 为 num赋一个整型值; 执行
15、 c=num%10; printf(“%d“,c); 直到循环条件 (num/=10)0不成立; 输出换行 已知为 num赋值 23 第 1 次执行循环体 执行 c=num%10=23%10=3; 执行 printf(“%d“,c);输出 3 判断循环条件 num/=10 等价于 num=num/10; 因此 num=23/10=2, 2大于 0, 因此循环条件 (num/=10)0 成立,继续执行循环体。执行完第1 次循环时, num为 2,c 为 3 第 2 次执行循环体 执行 c=2%10=2; 执行 printf(“%d“,c);再输出 2 判断循环条件num=2/10=0,0 等于
16、0,因此循环条件(num/=10)0 不成立。 结束循环 10 #include main() int s=0,a=5,n; scanf(“%d“, do s+=1; a=a-2; while(a!=n); printf(“%d,%dn“,s,a); 若输入的值1,运行结果为: 2,1 详见教材 p117 循环结构; p60 复合的赋值运算符 执行 s+=1; a=a-2; 直到循环条件a!=n 不成立; 已知为 n 赋值 1,s 为 0,a 为 5 第 1 次执行循环体 执行 s+=1; 等价于 s=s+1=0+1 执行 a=a-2; a=5-2=3 判断循环条件 ,3不等于1,因此循环条件
17、a!=n 成立 , 继续执行循环体。 执行完第 1 次循环时, s 为 1,a 为 3 第 2 次执行循环体 执行 s+=1; 等价于 s=s+1=1+1=2 执行 a=a-2; a=3-2=1 判断循环条件 ,1 等于 1,因此循环条件a!=n 不成立 , 结束循环。 执行完第 2 次循环时, s 为 2,a 为 1 输出此时 s,a 中的值,结果为2,1 11 #include “stdio.h“ main() char c; c=getchar(); while(c!=?) putchar(c); c=getchar(); 如果从键盘输入abcde?fgh (回车) 运行结果为: abc
18、de 12 #include main() char c; while(c=getchar()!=$) if(A main() int x, y =0; for(x=1;x=10) break; y=y+x; printf(“%d %d ”,y,x); 运行结果为: 10 5 详见教材 p120 for语句 详见教材 p126128 break,continue语句 for(表达式 1; 表达式 2; 表达式 3) (1) 先求解表达式1 (2) 求解表达式2,若其值为真,执行循环体,然后执行 (3). 若为假, 则结束循环,转到(5) (3) 求解表达式3 (4) 转回上面 (2) 继续执行
19、 (5) 循环结束,执行for 语句下面的一个语句 break ,跳出循环体;continue,结束本次循环(第i 次循环),继续执 行下一次循环 ( 第 i+1 次循环 ) 此题表达式 1 为 x=1,表达式 2(循环条件)为x main( ) char ch; ch=getchar( ); switch(ch) case A : printf(“%c ”, A); case B : printf(“%c ”, B); break; default: printf(“%sn”, ”other ”); 当从键盘输入字母A时,运行结果为:AB 详见教材 p103,switch语句 switch
20、(表达式) case 常量 1 :语句 1 case 常量 2 :语句 2 case 常量 n :语句 n default : 语句 n+1 其中表达式,常量1,常量 n 都为整型或字符型 case 相当于给出执行程序的入口和起始位置,若找到匹配的常量,则从 此处开始往下执行程序,不再匹配常量,直至遇到break 或 switch结束 本题过程: 首先从键盘接收一个字符A并将其放在变量ch 中。 执行 switch语句。 Switch 后面的条件表达式为ch, 因此表达式的值即 为字符 A. 用字符 A依次与下面的 case 中的常量匹配。 与第 1 个 case 后的常量匹配,则从其后的语句
21、开始往下执行程序(在 执行过程中不再进行匹配。)因此先执行printf(“%c ”, A) ,屏幕 上输出 A;再往下继续执行printf(“%c ”, B) ,屏幕上输出B;再继 续执行 break , 此时跳出 switch语句。 15. #include main( ) int a=1,b=0; scanf(“%d ”, switch(a) case 1: b=1;break ; case 2: b=2;break ; default : b=10; printf(“%d “, b); 若键盘输入5,运行结果为:10 本题过程: 首先用 scanf 函数为变量a 赋值为 5。 执行 sw
22、itch语句。 switch后面的条件表达式为a, 因此表达式的值即 为 5. 用 5 依次与下面 case 中的常量匹配。没有找到匹配的常量,因此 两个 case 后的语句都不执行。执行default后面的语句b=10;将 10 赋 给变量 b。 输出变量 b, 结果为 10 16. #include main()_ char grade=C; switch(grade) case A: printf(“90-100n ”); case B: printf(“80-90n ”); case C: printf(“70-80n ”); case D: printf(“60-70n ”); br
23、eak; case E: printf(“ main() int y=9; for(;y0;y- -) if(y%3=0) printf(%d”,- -y); 运行结果为: 852 详见教材 p53,自增自减符号 此题表达式 1 被省略,表达式2(循环条件)为y0,表达式 3 为 y- 初值 y 为 9,循环条件(即表达式2)y0 成立,进入循环体 第 1 次循环 执行 if语句。 9%3=0 ,if语句的条件表达式成立,执行 printf(%d”,- -y),即 y 先自减 1 变为 8,然后在输出,因此屏幕上输 出 8 转向表达式3,执行 y-, y=y-1=8-1=7。循环条件y0 成立
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2019 最新 大学 语言 考试题 答案
链接地址:https://www.31doc.com/p-5374217.html