xzm2019

睿信书院2018级14班程序设计基础期中考试选择题部分
一、选择题(每题2分,共14题,28分)1.下列叙述正确的是?A. 函数中没有形参就没有返回值;B. 定义void...
扫描右侧二维码阅读全文
02
2019/01

睿信书院2018级14班程序设计基础期中考试选择题部分

一、选择题(每题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$的值是多少?

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.现有以下定义

int test[1000];

那么,sizeof(test)的值为多少(已知int占用4个字节)

  • A.1000
  • B.4000
  • C.4
  • D.4004

9.若有以下语句:

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题

#include <stdio.h>
**[1]**
int main()
{
    int k,t,a[N];
    for (int i=0;i<N;i++) scanf("%d",&a[i]);
    for (int i=0;i<**[2]**;i++)
    {
        k=i;
        for (int j=i+1;j<N;j++)
            if (**[3]**) k=j;
        if (k!=i)
        {
            t=a[i]; a[i]=a[k]; a[k]=t;
        }
    }
    for (int i=0;i<N;i++) printf("%d\n",a[i]);
    return 0;
}

15.[1]处应填写的代码是?

  • A.define N 10
  • B.#define N 10
  • C.define N=10
  • D.#define N=10

16.[2]处应填写的代码是?

  • A.N
  • B.N+1
  • C.N-1
  • D.a[9]

17.[3]处应填写的代码是?

  • A.a[j]<a[k]
  • B.a[i]<a[j]
  • C.a[i]<a[k]
  • D.a[k]<a[j]

以下程序调用invert函数按逆序重新放置$a$数组中元素的值,请阅读程序并完成18-20题

#include <stdio.h>
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.i<j
  • B.i>j
  • 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
If you think my article is useful to you, please feel free to appreciate

Leave a Comment