C语言程序设计(201803)测试求大佬帮忙!

单选题 (共17题)
1 . C语言中规定函数的返回值的类型是由( )。(3分)
A.return语句中的表达式类型所决定
B.调用该函数时系统临时决定
C. 调用该函数时的主调用函数类型所决定
D. 在定义该函数时所指定的函数类型所决定
2 . 已知char ch[]=”my name”;则字符数组ch的长度是_____。(3分)
A.6
B.7
C.8
D.9
3 . 有以下程序段执行后,b的值是_____。 int a[10]={1,2,3,4,5,6,7,8,9,10},*p=&a[3],b;b=p[4];(4分)
A.5
B.6
C.8
D.9
4 . 下面正确的函数定义形式是______。(3分)
A.double fun(int x,int y)
B.double fun(int x;int y)
C. double fun(int x,int y);
D. double fun(int x,y);
5 . 合法的数组定义是________。(4分)
A.int a[]="string";
B.int a[5]={0,1,2,3,4,5};
C. vhst s="string";
D. char a[]={0,1,2,3,4,5};
6 . 下述对C语言字符数组的描术中错误的是____。(4分)
A.字符数组可以存放字符串
B.字符数组中的字符串可以整体输入、输出
C. 可以在赋值语句通过赋值运算符“=”对字符数组整体赋值
D. 不可以用关系运算符对字符数组中的字符串进行比较
7 . func(exp1,(exp2,exp3),(exp4,exp5,exp6));含有( )个实参。(3分)
A.1
B.2
C.3
D.6
8 . 有以下函数定义:void fun(int n, double x) { …… }如果对此函数正确定义并赋值,则对函数fun的正确调用语句是______。(4分)
A.fun(int y,double m);
B.k=fun(10,12.5);
C. fun(x,n)
D. void fun(n,x);
9 . 以下选项中,与k=n++完全等价的表达式是_____。(4分)
A.k=n,n=n+1
B.n=n+1,k=n
C. k=++n
D. k+=n+1
10 . 下列( )不属于结构化程序设计的循环结构。(3分)
A.for
B.while
C. if-else
D. do-while
11 . 若有定义:int aa[8];则以下表达式中不能代表数组元aa[1]的地址的是_____。(4分)
A.&aa[0]+1
B.&aa[1]
C. &aa[0]++
D. aa
12 . 已知:char str1[10],str2[10]={"books"};则在程序中能够将字符串“books”赋给数组str1的正确语句是( )。(3分)
A.str1={"books"};
B.strcpy(str1,str2);
C. str1=str2;
D. strcpy(str2,str1);
13 . 若有初始化语句int a[5]={1,2,3,4,5}; ,值为 5 的表达式是( )。(4分)
A.a[2]
B.a[a[2]+1]
C. a[a[2]]
D. a[2]+1
14 . 下面叙述中正确的______。(4分)
A.对于用户自己定义的函数,在使用前必须加以说明
B.说明函数时必须明确其参数类型和返回类型
C. 函数可以返回一个值,也可以什么值也不返回
D. 空函数不完成任何操作,所以在程序设计中没有用处
15 . 有定义语句:int b;char c[10]; ,则正确的输入语句是_____。(3分)
A.scanf("%d%s",&b,&c);
B.scanf("%d%s",&b,c);
C. scanf("%d%s",b,c);
D. scanf("%d%s",b,&c);
16 . 在C语言中,函数的数据类型是指_______。(3分)
A.函数返回值的数据类型
B.函数形参的数据类型
C. 调用该函数时的实参的数据类型
D. 任意指定的数据类型
17 . 下列描述中不正确的是____。(4分)
A.字符型数组中可以存放字符串
B.可以对字符型数组进行整体输入、输出
C. 可以对整型数组进行整体输入、输出
D. 不能在赋值语句中通过赋值运算符“=”对字符型数组进行整体赋值

    选D

    选C;"my name"算上空格一共7个字符,加上结尾的'\0'为8个字符,所以如果m前没有空格,那么答案为C

    选C;p指向a[3]=4的地址,即p及其之后地址中的数值为{4,5,6,7,8,9,10},所以其中第5个数为p[4]=8

    选C

    选D;A错误,字符串应为char型;B错误,数组长度不够;C错误,没有vhst类型;D正确,可看作字符数组,{}内的数值可转为相应的ASCII字符

    选C;字符数组即字符串不能直接通过"="赋值,要使用strcpy函数

    选C;函数实参可以是常量、变量或表达式,该题中逗号表达式(exp2,exp3)返回exp3,(exp4,exp5,exp6)返回exp6,因此一共3个实参

    选C;A错误,函数调用时不用指明其参数类型;B错误,fun函数没有返回值,不能赋给k;C正确;D错误,函数调用时不用指明其返回类型

    选A;n++表示先返回n的值,再对n进行自增操作,即先令k=n,再执行n=n+1

    选C;if-else不是循环结构

    选D;aa表示数组首地址,即&aa[0],而不是&aa[1]

    选B

    选B;a[2]=3,a[2]+1=4,所以a[a[2]+1]=a[4]=5

    选C;A错误,除非函数定义在调用语句之后的位置,才需要提前声明;B错误,函数返回值不一定要显示给出,没有返回值类型的默认为整型;C正确;D错误,在类的定义中,当构造函数和析构函数不需要完成操作时可用空函数来表示,但它们又是有意义的

    选B;scanf需指明读入变量的地址,字符串名称c就表示字符串的地址,也即字符数组首元素的地址,不用再加取地址符&

    选A

    选D;同第6题

码字不易,望采纳~

温馨提示:答案为网友推荐,仅供参考