Loading... ### 一、选择题(每题2分,共14题,28分) 1.下列叙述正确的是? - A. 函数中没有形参就没有返回值; - B. 定义`void`函数就一定没有形参; - C. 定义`int`类型的函数有可能返回`float`类型 - D. 函数内有语句`return(x);`,如果$x$是`float`类型,有可能返回`int`类型。 2.二维数组$a$有$m$行$n$列,则在$a[i][j]$之前的元素个数为? - A. $i*n+j$ - B. $i*n+j+1$ - C. $(i-1)*n+j-1$ - D. $(i-1)*n+j$ 3.已知`int a=4,b=5,c=2;`则执行表达式`a||c++;`后,$c$的值是? - A.2 - B.3 - C.4 - D.6 4.定义字符数组$s$并赋值,不合法的一个是? - A.`char s[20]={'B','I','T'};` - B.`char s[]="BIT"` - C.`char s[20]={"BIT"};` - D.`char s[20]; s="BIT";` 5.以下循环执行以后,$cnt$的值是多少? ```cpp int cnt=0; for (int i=1;i<=10;i++) for (int j=i+1;j<=10;j++) cnt++; ``` - A.55 - B.100 - C.45 - D.56 6.使用语句`scanf("a=%f,b=%d",&a,&b);`读入的时候,可以使得语句正确读入的输入是? - A.`a=1.2 b=5` - B.`1.2,5` - C.`1.2 5` - D.`a=1.2,b=5` 7.C语言的函数由哪些部分组成? - A.变量、指针、表达式、语句、结构 - B.语句,结构和其他函数 - C.说明语句和执行语句 - D.表达式语句和函数调用语句 8.现有以下定义 ```cpp int test[1000]; ``` 那么,`sizeof(test)`的值为多少(已知`int`占用4个字节) - A.1000 - B.4000 - C.4 - D.4004 9.若有以下语句: ```cpp int cnt=0; void fun(int x) { cnt++; if (x==0) return; fun(x-1); } ``` 现在调用`fun(101)`后,`cnt`的值为? - A.100 - B.101 - C.102 - D.103 10.已知$x=10$那么`(0<=x<=5)`和`(0<=x)`的值分别是? - A.真,真 - B.真,假 - C.假,真 - D.假,假 11.现有函数`int plus(int a,int b){return a+b;}`,现在要定义之前提前声明,下面声明**不**正确的是? - A.`int plus(int,int);` - B.`int plus(int a,b);` - C.`int plus(int a,int b);` - D.`int plus(int b,int a);` 12.假设以下表达式中变量均被正确定义,下面表达式**不**合法的是? - A.`a=b=c` - B.`b=b/a` - C.`a=a%4.0` - D.`a=a?b:c` 13.有如下说明语句`char str1[80]="abce",str2[80]="1234",str3[80]="ABCD";`执行`strcat(str1,strcat(str3,str2));`后,下面说法正确的是? - A.`str1="abceABCD1234" str2="1234" str3="ABCD1234"` - B.`str1="abce" str2="1234ABCD" str3="1234ABCDabce"` - C.`str1="abceABCD" str2="1234" str3="ABCD1234"` - D.`str1=abce" str2="1234abceABCD" str3="ABCD"` 14.以下描述**不**正确的是() - A.在定义函数时,必须指定形参的类型。 - B.在函数中,只要说明了变量,就可为其分配存贮单元。 - C.数组名可以作为参数进行传递。 - D.形参和实参之间可以是值传递。 ### 二、程序填空题(每题2分,共6题,12分) #### 以下程序是对10个数进行升序(从小到大)选择排序,请阅读程序并完成15-17题 ```cpp #include **[1]** int main() { int k,t,a[N]; for (int i=0;i void invert(int s[],int i,int j) { int t; if (**[1]**) { t=s[i]; s[i]=s[j]; s[j]=t; invert(s,**[2]**,j-1); } } int main() { int a[10]; for (int i=0;i<**[3]**;i++) scanf("%d",&a[i]); invert(a,0,9); for (int i=0;i<10;i++) printf("%d\n",a[i]); return 0; } ``` 18.[1]处应填写的代码是? - A.`ij` - C.`i!=j` - D.`i==j` 19.[2]处应填写的代码是? - A.`i` - B.`i+1` - C.`i-1` - D.`j-1` 20.[3]处应填写的代码是? - A.`N` - B.`10` - C.`9` - D.`N-1` Last modification:January 2nd, 2019 at 02:13 am © 允许规范转载 Support If you think my article is useful to you, please feel free to appreciate ×Close Appreciate the author Sweeping payments Pay by AliPay Pay by WeChat