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