您的当前位置:首页正文

2015-2016青岛理工C语言试题

2024-03-07 来源:易榕旅网
一.单项选择题(每题1分,共30分)

(1)按照C语言规定的用户标识符命名规则,不能出现在标识符中的是( )。

A)字母 B)数字 C)下划线 D)连接符 (2)计算机能直接执行的程序是( )。

A)源程序 B)目标程序 C)可执行程序 D)汇编程序 (3)有以下定义语句,编译时会出现编译错误的是( )。

A)char a='a'; B)char a='\\n'; C)char a='aa'; D)char a='\\t'; (4)以下选项中正确的定义语句是( )。

A)double a; b; B)double a=b=7; C)double a=7, b=7; D)double, a, b; (5)以下不能正确表示代数式2ab除cd的C语言表达式是( )。

A)2*a*b/c/d B)a*b/c/d*2 C)a/c/d*b*2 D)2*a*b/c*d (6)若变量均已正确定义并赋值,以下合法的C语言赋值语句是()。

A)x=y==5; B)x=n%2.5; C)x+n=1; D)x=5=4+1;

(7)设有定义:int k=0;,以下选项的四个表达式中与其他三个表达式的值不相同的是()。

A)k++ B)k+=1 C)++k D)k+1

(8)以下选项中,当x=3时,值为0的表达式是()。

A)x%2==1 B)x/2 C)x%2!=0 D)x%2==0 (9)下列关于C语言文件的叙述中正确的是()。

A)文件是由一组相关数据组成,只能构成二进制文件 B)文件是由一组相关结

构组成,可以构成二进制文件或文本文件

C)文件是由一组相关数据组成,可以构成二进制文件或文本文件 D)文件是由

一组相关数据组成,只能构成文本文件

(10)以下叙述中错误的是()。

A)C语言是一种结构化程序设计语言 B)结构化程序有顺序、分支、循环

三种基本结构组成

C)使用三种基本结构构成的程序只能解决简单问题 D)结构化程序设计提倡

模块化的设计方法

(11)有以下程序

#include void main() { char c1,c2; c1=’A’+’8’-‘4’; c2=’A’+’8’-‘5’;

printf(“%c,%d\\n”,c1,c2); }

已知字母A的ASCII码为65,程序运行后的输出结果是() A)E,68 B)D,69 C)E,D D)输出无定值

(12)已知字符‘A’的ASCⅡ代码值是65,字符变量c1的值是‘A’,c2的值是’D’。

执行语句printf(\"%d,%d\后,输出结果是()。 A)A,B B)A,68 C)65,66 D)65,68

(13)若变量已正确定义为int型,要通过语句scanf(\"%d,%d,%d\;给a赋

值1、给b赋值2、给c 赋值3,以下输入形式中错误的是()。

A)<空格>1,2,3<回车> B)1<空格>2<空格>3<回车>

1

C)1, <空格><空格>2, <空格><空格>3<回车> D)1,2,3<回车> (14)在嵌套使用if语句时,C语言规定else总是()。

A)和之前与其具有相同缩进位置的if配对 B)和之前与其最近的if配对 C)和之前与其最近的且不带else的if配对 D)和之前的第一个if配对 (15)以下关于逻辑运算符两侧运算对象的叙述中正确的是()。

A)只能是整数0或1 B)只能是整数0或非0的整数

C)可以是结构体类型的数据 D)可是任意合法的表达式

(16)有以下程序段

int a, b, c;

a=10; b=50; c=30; if (a>b) a=b, b=c; c=a;

printf(\"a=%d b=%d c=%d\\n”, a, b, c);程序的输出结果是()。

A)a=10 b=50 c=10 B)a=10 b=50 c=30 C)a=10 b=30 c=10 D)a=50 b=30

c=50

(17)以下叙述中正确的是()。

A)预处理命令行必须位于C源程序的起始位置 B)在C语言中,预处

理命令行都以“#”开头

C)每个C程序必须在开头包括预处理命令行:#include D)C语言的预处理命令

要以分号;结尾

(18)以下叙述中正确的是()。

A)break语句只能用于switch语句题中 B)在switch语句中必须使用default C)break语句只能用在循环体内和switch语句体内 D)在循环体内使用break

语句和continue语句的作用相同

(19)有以下程序

#include void main() { int i,j,m=55; for(i=1;i<=3;i++)

for(j=3;j<=i;j++) m=m%j; printf(\"%d\\n\

程序的运行结果是()。

A)0 B)1 C)2 D)3 (20)有以下程序

#include void main() { int i, j;

for(i=3; i>=1; i--) for(j=1; j<=2; j++) printf(\"%d\}

程序的运行结果是()。

A)2 3 4 B)4 3 2 3 4 5 5 4 3 C)2 3 D)4 5 3 4 2 3 (21)以下关于字符串的叙述中正确的是()。

A)C语言中有字符串类型的常量和变量 B)两个字符串中的字符个数相同时才

2

能进行字符串大小的比较

C)可以用关系运算符对字符串的大小进行比较 D)空串一定比空格打头的字

符串小

(22)若有定义语句:int m[]={5,4,3,2,1},i=4;,则下面对m数组元素的引用中错误的是()。

A)m[--i] B)m[2*2] C)m[m[0]] D)m[m[i]]

(23)若有定义语句:char s[10]=\"1234567\\0\\0\";,则strlen(s)的值是()。

A)7 B)8 C)9 D)10 (24)有定义语句:char s[10];,若要从终端给s输入5个字符,错误的输入语句是()。

A)gets(&s[0]); B)scanf(“%s”,s+1); C)gets(s); D)scanf(“%s”,s[1]); (25)对于一个正常运行的C程序,以下叙述中正确的是()。

A)程序的执行总是从main函数开始,在main函数结束

B)程序的执行总是从程序的第一个函数开始,在main函数结束 C)程序的执行总是从main函数开始,在程序的最后一个函数中结束

D)程序的执行总是从程序的第一个函数开始,在程序的最后一个函数中结束 (26)若函数调用时的实参为普通变量时,以下关于函数形参和实参的叙述中正确的是()。

A)函数的实参和其对应的形参共占同一存储单元 B)形参只是形式上的存在,不占用具体存储单元

C)同名的实参和形参占同一存储单元 D)函数的形参和实参分别占用不同的存储单元

(27)以下叙述中错误的是()。

A)C程序是由一个或一个以上的函数组成 B)函数调用可以作为一个独立的语句存在

C)若函数有返回值,需要通过return语句返回 D)C函数必须有形式参数 (28)在C函数的定义和调用中,下面描述正确的是()。

A)函数的定义可以嵌套,函数的调用不可以嵌套 B)函数的定义不可以嵌套,

函数的调用可以嵌套

C)函数的定义和调用都不可以嵌套 D)函数的定义和调用都可

以嵌套

(29)若在定义语句:int a,b,c,*p=&c;之后,接着执行以下选项中的语句,则能正确执行的语句是()。

A)scanf(\"%d\ B)scanf(\"%d%d%d\ C)scanf(\"%d\ D)

scanf(\"%d\

(30)以下关于指针变量的说法中,错误的是()。

A)定义指针变量时,必须指定基类型 B)定义指针变量时,可以先不指

定基类型

C)一个指针变量,只能指向同类型的变量 D)指针变量的值是地址

二、填空题(每空1分,共10分)

(1)已知整型变量a=6,b=7,c=1,则表达式 (a*3-b+c)/5 的值是。 (2).数学公式y1(ab)xy , 写成C语言表达式是 。 2(3)C语言表达式!(3<6)||(4<9)的值是________________。 (4)若有如下定义float f=123.4567;要求输出该数时保留1位小数,共占8列,左对齐,

3

则具体的printf语句是。

(5)设有以下宏定义:# define WIDTH 80

# define LENGTH WIDTH+40

则执行赋值语句:v = LENGTH * 20;( v 为int 型变量)后,v 的值是_______。 (6)从变量的作用域角度分有全局变量和________________________。

(7)如下图所示,在链表中pre指向的结点后面插入p所指向的节点的关键语句是:

和。

其中结构体数据类型和指针变量的定义如下: struct stu { int a; float b;

struct stu *next; } *head, *pre,*p;

(8)C语言可以处理的文件类型是和。

三、判断题,正确的画,错误的画×(每题1分,共15分)

(1)程序中的每一行只能写一条语句。() (2)main可作为用户标识符。() (3)C语言标识符大小写敏感。( )

(4)单目、三目和赋值运算符的结合性为从右到左。( ) (5)在程序运行期间,其值不能被改变的量称为常量。( ) (6)C程序可以由一个或多个函数组成。()

(7)只有一个分号“;”的语句称为空语句,空语句不合法,编译时会报错。() (8)用花括号“{}”把一些语句括起来构成的复合语句,可以出现在允许语句出现的任何地方。( )

(9)逻辑运算中,逻辑非“!”的优先级最高,逻辑与“&&”次之,逻辑或“||”最低。( )

(10)switch语句可以嵌套使用,而if语句不可以嵌套使用。( ) (11)continue语句只能用于循环语句中。( ) (12)数组中元素的下标是从0开始的。( ) (13)用户定义的函数,必须包含return语句。( ) (14)函数定义的先后顺序与其被调用的先后次序无关。( ) (15)当局部变量有效时,同名的全局变量不起作用。( )

四、程序阅读题(每题3分,共15分)

1、

4

int main(void) {

int a = 1, c = 65, d = 97;

printf(\"a10 = %d, a8 = %o, a16 = %x\\n\

printf(\"c10 = %d, c8 = %o, c16 = %x,cc = %c\\n\ d++;

printf(\"d10 = %d, dc = %c\\n\ return 0; }

运行结果: 2、

int main(void ) {

int k, j;

int a[] = {3, -5, 18, 27, 37, 23, 69, 82, 52, -15}; for(k = 0, j = k; k < 10; k++) if(a[k] > a[j]) j = k;

printf(\"m = %d, j = %d\\n\ a[j], j); return 0; }

运行结果: 3、

void ast(int x, int y, int *cp, int *dp) {

*cp = x + y; *dp = x - y; }

int main(void) {

int a, b, c, d; a = 6; b = 3;

ast(a,b,&c,&d);

printf(\"%d,%d\\n\ return 0; }

运行结果: 4、

int main(void) {

char s[] = \"china\ for(p=s+1; p5

} 运行结果:

5、

long fun(int n) { long s; if(n == 1) s = 1; else

s = fun(n-1) + n; return s; }

int main(void) {

printf(“%ld\\n”, fun(5)); }

运行结果:

四、编程题(共6题,选做5题,共30分)

(1)输入三个整数,按照从大到小的顺序输出,如:输入“5 3 6”,输出“6 5 3”。

(2)编程实现求解一元二次方程ax2+bx+c=0的根,由键盘输入a,b,c三个整数,其中a不等于0。提示考虑无实根,单实根,双实根的情况,如输入“1 -3 2”,输出“x1=2, x2=1”。

(3)编写程序实现功能如下:从键盘输入一个字符串(不超过99个字符),可能含有大小写字母、数字、空格、其他符号(如:~!@#$%^&*()等),程序代码实现对字符串中的大小写字母转换,然后输出,如输入“#12a4B 5tBnY 88a”,输出为“#12A4b 5TbNy 88A”。

(4)编写程序实现如下功能:利用一维数组,从键盘输入5个学生的成绩,输出这些学生

成绩的平均分。

(5)利用指针,编程实现strcat的功能:void MyStrCat(char *target, char *source); 将字符串source连接到字符串target的后面.

(6)用结构体类型描述一个人的情况,成员包括姓名、工资、年龄,编写程序输入5个人

的情况,然后为每个人做如下操作:增加工资30%、年龄增加一岁,输出修改后的5个人的数据。

6

因篇幅问题不能全部显示,请点此查看更多更全内容