西交15春《程序设计基础》在线作业答案

所属学校:西安交通大学 科目:程序设计基础 2015-05-27 13:10:42
西交15春《程序设计基础》在线作业

一、单选题:
1.以下程序的输出结果是(    )main(    ){ int a=5,b=4,c=6,d;printf("%d/n",d=ab?(ac?a:c)b));}          (满分:2)
    A. 5
    B. 4
    C. 6
    D. 不确定
2.以下程序中,while循环的循环次数是(    )main(    ){ int i=0;while(i<10){ if(i<1) continue;if(I==5) break;i++;}......}          (满分:2)
    A. 1
    B. 10
    C. 6
    D. 死循环,不能确定次数
3.下列运算符优先级最高的是(    )          (满分:2)
    A. &&
    B.
    C. ++
    D. !
4.下列说法不正确的是:(    )          (满分:2)
    A. ++、——只能用于变量
    B. ++、——比负号运算符的优先级要高
    C. ++、——的结合方向是:自右至左。
    D. ++、——常用于循环变量表达式中
5.对于如下的表达式:int a[3][4],*p;p=*a;执行p++操作之后,*p表示取(    )的内容。          (满分:2)
    A. a[0][0]
    B. a[1][0]
    C. a[1][1]
    D. a[0][1]
6.关于switch语句说法不正确的是(    )          (满分:2)
    A. case的次序不影响执行结果
    B. 每个case语句后面的常量可以不同
    C. 在执行完一个case语句后转到下一个case语句执行
    D. 每个case语句后面表达式只能是常量
7.以下选项中不属于C语言的类型的是(    )          (满分:2)
    A. signed short int
    B. unsigned long int
    C. unsigned int
    D. long short
8.(    )是用来描述对象的属性和行为的          (满分:2)
    A. 实体
    B. 类
    C. 对象
    D. 现象
9.关于形式参数,下面说法错误的是(    )          (满分:2)
    A. 对于形参,虽然定义了它,只有当函数被调用时,形参才在内存中开辟空间
    B. 调用结束后,形参自动从内存中被释放掉
    C. 在函数定义中,可以不给出形参类型,调用的时候再定义。
    D. 实参与形参的关系是赋值与被赋值的关系
10.以下说法错误的是(    )          (满分:2)
    A. C程序必须从main(    )函数开始执行
    B. 所有函数在定义上讲都是相互独立的,不存在嵌套定义
    C. C语言中有两类函数,系统提供的库函数和用户自定义的函数
    D. 参数的作用是向函数传递不同的数据
11.以下叙述正确的是(    )          (满分:2)
    A. 可以把define和if定义为用户标识符
    B. 可以把define定义为用户标识符,但不能把if定义为用户标识符
    C. 可以把if定义为用户标识符,但不能把define定义为用户标识符
    D. define和if都不能定义为用户标识符
12.关于链表,下列说法错误的是(    )          (满分:2)
    A. 链表是动态分配的一种结构,它根据需要开辟内存单元
    B. 链表有头指针变量head,它是链表的第一个结点
    C. 如果要在链表中增加新的结点,需要申请存储空间
    D. 如果不再使用链表,则应释放所占的存储空间
13.下面程序#include "stdio.h"void main(    ){    int k=2,m=4,n=6;    int *pk=&k,*pm=&m,*p;   *(p=&n)=*pk*(*pm); printf("%d/n",n);  getch(    );}的运行结果是(    )          (满分:2)
    A. 7
    B. 8
    C. 9
    D. 10
14.若有以下程序#include void f(int n);main(    ){ void f(int n);f(5);}void f(int n){ printf("%d/n",n); }则以下叙述中不正确的是(    )          (满分:2)
    A. 若只在主函数中对函数f进行说明,则只能在主函数中正确调用函数f
    B. 若在主函数前对函数f进行说明,则在主函数和其后的其它函数中都可以正确调用函数f
    C. 对于以上程序,编译时系统会提示出错信息:提示对对f函数重复说明
    D. 函数f无返回值,所以可用void将其类型定义为无值型
15.在计算机中,一个字节所包含二进制位的个数是(    )          (满分:2)
    A. 2
    B. 4
    C. 8
    D. 16
16.若int i=10;执行下列程序后,变量i的正确结果是(    )switch( i ) {case 0: i+=1;case 10: i+=1;case 11: i+=1;default: i+=1;}          (满分:2)
    A. 10
    B. 11
    C. 12
    D. 13
17.以下程序的输出结果是(    )main(    ){ int a=4,b=5,c=0,d;d=!a&&!b(    )!c;printf("%d/n",d);}          (满分:2)
    A. 1
    B. 0
    C. 非0的数
    D. -1
18.有如下的数组 static int a[10]; 则(    )          (满分:2)
    A. 该数组没有被初始化
    B. 数组的所有元素都被赋值为0
    C. 数组的第一个元素是a[1]
    D. 数组共有11个元素
19.下面关于表达式:int i,*ip=&i说法正确的是(    )          (满分:2)
    A. 此表达式写法错误
    B. 此表达式表示用&i对ip进行初始化
    C. 此表达式表示用&i对*ip进行初始化
    D. 此表达式表示用&i分别对*ip和i进行初始化
20.关于数组,下列说法错误的是(    )          (满分:2)
    A. 在任何一个数组中,数组元素的类型都是一致的
    B. <常量表达式不允许是变量
    C. 一维数组中的各个元素在内存中是按顺序存放的
    D. C语言运行时要检查数组的边界,即下标值超界时,系统会报错
21.下面关于do-while语句和while语句说法正确的是(    )          (满分:2)
    A. while语句和do-while语句肯定都要执行
    B. 两者运行结果不同
    C. do-while在判断条件之前先执行循环体一次
    D. while语句至少执行一次
22.字符数组char a[]=”How do you do?”;的大小为(    )          (满分:2)
    A. 10
    B. 11
    C. 14
    D. 15
23.下列哪个不是算法的特征(    )          (满分:2)
    A. 有穷性
    B. 可行性
    C. 不确定性
    D. 输入
24.下列类型中错误的是(    )          (满分:2)
    A. unsigned
    B. unsigned float
    C. unsigned long int
    D. unsigned int
25.设:x=9;y=++x;,则产生的结果是(    )          (满分:2)
    A. x=9;y=9;
    B. x=10;y=10;
    C. x=9;y=10;
    D. x=10;y=9;
26.已知int j,i=1;执行语句“j=i++;”后,变量i的值是(    )          (满分:2)
    A. 1
    B. 2
    C. -1
    D. -2
27.下面程序:#include "stdio.h"#include fut(int **s,int p[2][3]){**s=p[1][1];}void main(    ){ int a[2][3]={1,3,5,7,9,11},*p; p=(int *)malloc(sizeof(int)); fut(&p,a); printf("%d/n",*p);getch(    );}输出结果是(    )          (满分:2)
    A. 1
    B. 7
    C. 9
    D. 11
28.关于链表的插入和删除,下列说法错误的是(    )          (满分:2)
    A. 插入位置包括表头、表中和表尾
    B. 从链表中删除一个结点,就是把它从内存中抹掉。
    C. 要删除链表中的某个结点,需自己定义删除函数。
    D. 删除结点要注意删除的结点是否是头结点
29.下面程序:#include "stdio.h"void main(    ){static int a[200];int i,j,n;for(i=0;i<200;i++) a[i]=0;  n=100; for(i=0;i<n;i++) for(j=0;j<n;j++)a[j]=a[i]+1; printf("%d/n",a[n-1]);getch(    );}的运行结果是(    )          (满分:2)
    A. 199
    B. 200
    C. 201
    D. 202
30.关于函数调用,下面说法错误的是(    )          (满分:2)
    A. 被调用函数必须是已经存在的函数、库函数或用户已定义过的函数
    B. 没有头文件也可以对库函数进行调用
    C. 如果使用用户自定义的函数,还要在主调用函数中说明用户函数的返回值类型。
    D. 在主函数main(    )中可以调用其他函数,其他函数也可以相互调用
31.以下函数,哪个不属于动态申请空间的标准库函数(    )          (满分:2)
    A. malloc(    )
    B. calloc(    )
    C. free(    )
    D. strcmp(    )
32.以下程序段的输出结果是(    )int a=1234;printf("%2d/n",a);          (满分:2)
    A. 12
    B. 34
    C. 1234
    D. 提示出错、无结果
33.为了判断两个字符串s1和s2是否相等,应当使用(    )          (满分:2)
    A. if(s1= =s2)
    B. if(s1=s2)
    C. if(strcpy(s1,s2))
    D. if(strcmp(s1,s2)= =0)
34.下列关于标识符的说法不正确的是(    )          (满分:2)
    A. 第一个字符必须是字母或下划线
    B. 第一个字符以后必须由字母、下划线或数字组成
    C. 大小写字母表示相同意义
    D. 标识符不能用C中的关键字
35.关于结构体,下列说法错误的是(    )          (满分:2)
    A. 不能将一个结构体变量作为一个整体进行输入和输出。
    B. 对成员变量可以像普通变量一样进行各种运算。
    C. 结构体变量的地址主要用作函数参数传递结构体的地址。
    D. 结构体变量赋初值与数组不同,可以不一一对应。
36.以下说法错误的是(    )          (满分:2)
    A. int(*p)(    ) ; 表示p被定义为一个指向返回值为整数的函数的指针
    B. 使用指向函数的指针是结构化程序设计的一种有效手段。
    C. char **p相当于char *(*p)
    D. 指针数组的元素补仅能存放地址,还可以存放其他数组的元素。
37.设有以下说明语句typedef struct { int n;char ch[8];}PER;则下面叙述中正确的是(    )          (满分:2)
    A. PER 是结构体变量名
    B. PER是结构体类型名
    C. typedef struct 是结构体类型
    D. struct 是结构体类型名
38.关于字符数组,下列说法错误的是(    )          (满分:2)
    A. 字符型数组中的每一个元素只能存放一个字符型数据
    B. 逐个输入输出字符时,要用“%c”格式符
    C. scanf(“%s”,&s);的写法是正确的
    D. 数组名就是数组的起始地址
39.以下程序的输出结果是(    )int f(    ){static int i=0;int s=1;s+=i; i++;return s;}main(    ){ int i,a=0;for(i=0;i<5;i++) a+=f(    );printf("%d/n",a);}          (满分:2)
    A. 20
    B. 24
    C. 25
    D. 15
40.有如下程序, 该程序的输出的结果是(    )int addc(int a,int b,int c) { c=a+b;return(c); } main(    ) { int x=4,y=2,z,r; z=x+y;r=addc(addc(x,y,z),addc(y,z,x),z);printf("%d/n",r); }          (满分:2)
    A. 36
    B. 12
    C. 14
    D. 6
41.下列说法错误的是(    )          (满分:2)
    A. else总是和它上面的,离它最近的if配对
    B. 条件表达式可以不用括号括起来。
    C. 整个if语句在程序中被看作是一条语句
    D. if语句中的各语句可以是一条语句,也可以是复合语句
42.设:int a=4,b=5; 则表达式 84-!0(    )2&&54的结果为(    )          (满分:2)
    A. 0
    B. 1
    C. -1
    D. 无法计算
43.若指针p已正确定义,要使p指向两个连续的整型动态存储单元,不正确的语句是(    )          (满分:2)
    A. p=2*(int*)malloc(sizeof(int));
    B. p=(int*)malloc(2*sizeof(int));
    C. p=(int*)malloc(2*2);
    D. p=(int*)calloc(2
    sizeof(int));
44.关于return语句,下面说法错误的是(    )          (满分:2)
    A. 它的功能是将表达式的值作为函数的返回值返回
    B. 函数中可以有多个return语句,执行到哪个就从那一个return语句返回
    C. return可以返回多个值
    D. return(表达式)语句中的表达式值的类型应与定义函数时函数的类型一致
45.以下说法错误的是(    )          (满分:2)
    A. C语言函数分为由系统提供的标准库函数和由程序员自己定义的函数
    B. 在主函数main(    )中可以调用其他函数,其他函数之间不可以相互调用
    C. C语言的程序是由一个函数或多个函数组成的
    D. 对于一个很大的任务,一般把它分解成若干源文件,分别编写和调试
46.以下不能定义为用户标识符的是(    )          (满分:2)
    A. scanf
    B. Void
    C. 3com
    D. int
47.下列说法错误的是(    )          (满分:2)
    A. for语句中,<表达式1 、<表达式2和<表达式3都可以缺省。
    B. <表达式2缺省,系统会认为此处的值是0
    C. for语句的三个表达式可以是任何类型的表达式
    D. for语句可以嵌套使用
48.执行下列两个语句后,输出的结果为(    )char c1=66,c2=98;printf(“%c,%d”,c1,c2);          (满分:2)
    A. 66
    98
    B. 66
    b
    C. B
    97
    D. B
    98
49.每条C语句后面都要有一个(    )          (满分:2)
    A. 逗号
    B. 冒号
    C. 分号
    D. 括号
50.结构体如下所示:struct employees;{ char name[30]; int age; float wage;};下面说法错误的是:(    )          (满分:2)
    A. 上述形式的定义在程序运行时不会为该结构体类型分配内存空间。
    B. 结构体变量在内存中存放时,占用连续的一段存储空间
    C. 上述结构体必须有关键字struct
    D. 上述结构体成员的类型不可以是已经定义过的结构体类型。

版权声明

声明:有的资源均来自网络转载,版权归原作者所有,如有侵犯到您的权益 请联系本站我们将配合处理!

分享: