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