程序设计基础在线作业和答案

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

程序设计基础在线作业
一共有十五个优先级: 1 () [] . -> 2 ! ~ -(负号)++ -- &(取变量地址)* (type)(强制类型) sizeof 3 * / % 4 + - 5 >> << 6 > >= < <=7 == !=8 &9 ^10 |11 && 12 || 13 ?: 14 = += -= *= /= %= |= ^= &= >>= <<= 15 , 就着多吧结合性:2 13 14 是从右至左其他都是从左至右
单项选择题:
1.在位运算中,操作数每右移一位,其结果相当于(操作数除以2 )。

2.设有如下定义:structsk{int a;float b;}data,*p;若要使p指向data中的a域,正确的赋值语句是
(p=(structsk*)&data.a)
3.以下叙述中错误的是(不可以用FILE定义指向二进制文件的文件指针。


4.Int a=1,b=2,c=3;if(a>b)a=b;if(a>c)a=c;则a的值为(1)
5.以下选项中合法的实型常数是(0.2)A:5E2.0 B:E-3 D:1.3E
6.若有下列定义和语句,则对a数组元素的非法引用是(*(pt+1)[2]),Int a[2][3],(*pt)[3];pt=a;
7.若k为int型变量,则以下程序段的执行结果是(输出为/%06D/)。

K=-8567;printf(“/%06D/\n”,k);
8.用户定义的函数不可以调用的函数是(main函数)。

9.Char a[]=”Thisisaprogram.”;输出前5个字符的语句是(printf(“%5s”,a) )
10.已知函数的调用形式fread(buffer,size,count,fp);其中buffer代表的是(一个指针,指向要读入数据的存
放地址)
11.下面有关for循环的正确描述是(for循环的循环体语句中,可以包含多条语句,但必须用花括号括起
来。


12.要打开A盘上user子目录下名为abc.txt的文本文件进行读、写操作,下面符合此要求的函数调用是
(fopen(”A\user\abc.txt”,”r”))
13.以下正确的说法是(用户可以重新定义标准库函数,若如此,该函数将失去原有含义。


14.以下正确的说法是:在C语言中(实参和与其对应的形参各占用独立的存储单元。


15.若使用一维数组名作函数实参,则以下正确的说法是(必须在主调函数中说明此数组的大小)
16.关于建立函数的目的,以下正确的说法是(提高程序的可读性)
17.下列程序的输出结果是(97b)。

main(){char c1=97,c2=98;print(“%d%c,c1,c2);}
18.以下程序的输出结果是(321)。

Main(){chars[]=”123”,*p;p=s;printf(“%c%c%c\n”,*p++,*p++,*p++);}
19.语句while(!E);中的表达式!E等价于(E==0)
20.下列程序的输出结果为(27)。

Main(){int m=7,n=4;floata=38.4,b=6.4,x;x=m/2+n*a/b+1/2;printf(“%f\n”,x);}
21.已知x=43, ch=’A’, y=0;则表达式(x>=y&&ch<’B’&&!y)的值是(1)。

22.下列标识符中,不合法的C语言用户自定义标识符是(enum)
23.以下只有在使用时才为该类型变量分配内存的存储类说明是(auto和register)
24.下列程序的输出结果是(a=2,b=1)。

Main(){int x=1,y=0,a=0,b=0;switch(x)……
25.该变量a是整型,f是实型,i是双精度型,则表达式10+’a’+i*f值的数据类型为(double)
26.以下数值中,不正确的八进制数或十六进制数是(-16)
27.若有int i=3,*p;p=&i;下列语句中输出结果为3的是(printf(“%d”,*p))
28.若有说明.int I,j=2,*p=&I;则能完成i=j赋值功能的语句是(*p=*&j)a<<
29.若fp是指向某文件的指针,且已读到此文件末尾,则库函数feof(fp)的返回值是(非零值)
30.凡是函数中未指定存储类别的局部变量,其隐含的存储类别为(自动auto)。

31.C语言中,定义结构体的保留字是(struct).
32.若二维数组a有m列,则在a[i][j]前的元素个数为(i*m+j).
33.C语言中要求对变量作强制定义的主要理由是(便于确定类型和分配空间)。

34.在调用函数时,如果实参是简单变量,它与对应形参之间的数据传递方式是(单向值传递)
35.以下运算符中优先级最低的是(||)。

36.函数的形式参数隐含的存储类型说明是(auto).
37.Int a[10];合法的数组元素的最小下标值为(0)A:10, B:9, C:1.
38.若有说明int a[3][4];则a数组元素的非法引用是(a[0][4]).
39.以下对C语言函数的描述中,正确的是(C程序必须由一个或一个以上的函数组成)。

40.应用缓冲文件系统对文件进行读写操作,关闭文件的函数名为(fclose())。

41.若执行函数时发生错误,则函数的返回值是(0)。

42.下列程序段的输出结果为(3)。

Int x=3,y=2;printf(“%d”,(x-=y,x*=y+8/5))。

43.以下语句中,不能实现回车换行的是(putchar(“\n”)).
44.若有inta[10]={0,1,2,3,4,5,6,7,8,9},*p=a;则输出结果不为5的语句为(printf(“%d”,*p[5])).
45.下列程序运行的结果是(运行出现错误)。

Main(){int i=1,sum=0;while(i<10)sum=sum+1;………sum.
46.下列程序段的输出结果为(0085.7%).Float k=0.8567;………k*100).
47.对以下说明语句int a[10]={}6,7,8,9,10};的正确理解是(将5个初值依次赋给a[0]至[4]).
48.设有说明.char w;int x;float y;double z;则表达式w*x+z-y值的数据类型为(double)
49.以下的选择中,正确的赋值语句是(a=b=5)
50.结构体类型的定义允许嵌套是指(成员是已经或正在定义的结构体型)
51.在C语言中,char型数据在内存中的存储形式是(ASC||码)。

52.Fgets(str,n,fp)函数从文件中读入一个字符串,以下正确叙述是(fgets函数将从文件最多读入n-1个字符)
53.若x=2,y=3则x&y的结果是(2)
54.若用数组名作为函数的实参,传递给形参的是(数组的首地址)
55.函数rewind的作用是(使位置指针重新返回文件的开头)
56.可将C源程序存在磁盘上,还可将数据按数据类型分别以(文件)的形式存在磁盘上。

57.以下叙述中不正确的是(在C程序中,赋值运算符的优先级最低)
58.变量的指针,其含义是指该变量的(地址)
59.以下选项中,与k=n++完全等价的表达式是(k=n,n=n+1)
60.设int x=1,y=1;表达式(!x||y--)的值是(1)
61.在C语言中,能代表逻辑值“真”的是(非0的数)
62.经过下列的语句int j,a[10],*p;定义后,下列语句中合法的是(p=p+2)
63.以下错误的描述是:函数调用可以(做为一个函数的形参)
64.C语言中,要求运算数必须是整型的运算符是(%)
65.执行以下程序段后,输出结果和a的值是(10和11)。

Int a=10;…a++)
66.C语言中的文件类型只有(ASC||文件和二进制文件两种)
67.Static struct{int a1;float a2---{1,3,5,’A’},---下标变量是(a[0])
68.若有int*p=(int*)mall---(int));存入整数123的语句为(scanf(“%d”,p)
69.在C语言中,形参的缺省存储类是(auto)
70.下列四个选项中,均是C语言关键字的选项是(switch, typedef, continue)
71.逻辑运算符两侧运算对象的数据类型(可以是任何类型的数据)
72.设C语言中,int类型数据占2个字节,则short类型数据占(2个字节)
73.若有以下的定:int t[3][2];能正确表示t数组元素地址的表达式是(t[2])
74.double x;scanf(“%lf”,&x);不可以赋值给x变量的常量是(abc)
75.以下运算符中,优先级最高的运算符是(%)
76.以下标识符中,不能作为合法的C用户定义标识符的是(putchar)
77.以下叙述中正确的是(宏替换不占用运行时间,只占编译时间)
78.
多项选择题
1.以下关于数组描述错误的是(1数组--,但可以--。

2数组--,但所有--。

3数组--,可以有--。


2.在定义int a[2][3];之后,对a的引用正确的有(1:a[0][2]; 2: a[1>2][!1])
3.以下选项中合法的表达式是(1: 0<=x<100, 2: i=j=0, 3: (char)(65+3))
4.下面那些为合法整型常量(1:190, 2: 0xf, 3:765)
5.以下描述错误的是(1:在循环体内使用break语句--相同。

2:从多重循环嵌套中退出是,只能使用goto
语句。


6.下列选项中是C语言合法标志符的有(1:good_morning 2:main)
7.以下对C语言中的函数描述不正确的有(1:可以--,不可以2:可以--,也可以3:嵌套定义—不允许)
8.以下关于typedef的叙述正确的是(1:用typedef—变量。

2:用typedef—来代表。

3:使用typedef—
通用)
9.关于for(表达式1,表达式2,表达式3)循环,以下正确的是(1:表达式1可以省略。

2:表达式2
可以省略。

3:表达式3可以省略)
10.以下选项中,合法的字符常量是(1:’\17’ 2: ’\t’ 3: ’\xaa’)
11.对do-while语句描述正确的是(1:do-while—,可以使用break--.2: do-while—,表达式值为零--。


12.定义c为字符型变量,则下列语句中错误的是(1:c=’97’ 2:c=”97” 3:c=”a”)
13.以下叙述正确的是(1:预处理—“#”开始。

2:在程序中—处理命令行。

3:#defineABCD是正确的宏
定义)
14.t为int类型,进入下面的循环之前,t的值为0do{…}while(t==1);则以下叙述中正确的是(1:循环—为
0. 2:循环控制表达式合法)
15.定义语句:int x,y;若要通过scanf(“%d,%d”,&x,&y),---11,---12,正确的有
(1:11,<空格>12<回车> 2:11,12<回车> 3:11,<回车>12<回车>)
16.以下不合法的赋值语句是(1:x=y=100 2:x+y 3:--int(a+b))
17.下列为c语言的关键字是(1:if 2:struct 3:union)
18.以下合法的十六进制数是(1:0Xabc 2:0x01)
19.以下表达式中正确的是(1:c=c+1 2:a+=1 3:x>y?x.y)
20.若a,b,c,d都是int型变量且初值为0,以下--正确的赋值语句是(1:a=b=c=d=100 2:d++ 3:d=(c=22)-(b++))
21.以下说法正确的是(1:C语言里没有字符串变量2:C语言里有字符变量)
22.以下用户标识符,其中合法的是(1:f2_G3 2:abc)
23.关于while语句与do-while语句,以下正确的是:(1:while是当型结构。

2:do-while是直到型结构。

3:两者有区别。


24.正确的if语句形式是(1:if(x>y&x!=y)2:if(x==y)x+=y 3:if(x<y){x++;y++;} )
25.能正确表示逻辑关系:”a≥10”的C语言表达式是(1:!(a<10)2:a>=10)
26.若以下选项中的变量已正确定义,则不正确的赋值语句是(1:x1=26.8%3 2:x4=1+2=3)
27.以下叙述中正确的是(1:一个C源—一个或多个函数组成。

2:一个C源—必须包含一个main()函数。

3:C源程序的基本组成单位是函数。


28.以下描述正确的是(1:使用while和do-while—之前完成。

2:while循环—循环语句。

3:for,while和
do-while—由空语句构成。


29.以下4个选项中,可以看作是一条语句的有(1:{;} 2:a=0,b=0,c=0; 3:if(a>0))
判断题
1. 若定义char str[];则str=”yellow”;是正确的。

(错误)
2. C中的变量必须“先定义,后使用”,函数也不例外。

(正确)
3. continue语句可用于switch语句,可也用于for、while和do循环语句中。

(错误)
4. C程序中,当调用函数时,由实参把值传递给形参,调用结束后,再由形参把值传回给实参。

(错误)
5. C程序中和每一行就是一个语句。

(错误)
6. 若有说明:int n=2,*p=&n,*q=p;,则以下非法的赋值语句是p=n;。

(正确)
7. 在某种意义上,char和int通用。

(正确)
8. C语言的文件存取方式只能是顺序存取,不能随机存取。

(错误)
9. C语言可以直接访问物理位元元址。

(正确)
10. 结构类型变量所占内存长度等于成员的长度;而共享体类型变量所占用的内存长度是各成员的内存长度之和,每个成员分别占用其自己的内存单元。

(错误)
11. C程序是由C文件构成,而C文件是由函数构成(正确)
12. 一个C源程序可以由一个main()函数和若干个其它函数组成。

(正确)
13. min和id-s都是合法的标识符。

(错误)
14. 表达式’a’和“a”是不同的,前者长度为1,后者长度为2。

(正确)
15. 若a=2,b=-4;则执行a||b++后,b为-4。

(正确)b为-3。

(错误)
16. 若a=7,b=5;则执行a&&b++后,b为6。

(正确)
17. 在C中变量不定义也可以使用。

(错误)
18. 可以用typedef声明各种类型名,但不能用它来定义变量。

(正确)
19. 若有int a[10]={1,2,3,4,5,6,7,8,9,10};a=a+1;则这时a代表元素2的位元元址。

(错误)
20. 全局变量的作用域一定比局部变量的作用域范围大。

(错误)
21. C中*&a是取变量a的地址。

(错误)
22. C语言既可以用来写系统软件,也可以用来写应用软件。

(正确)
23. 一个C源程序只能有一个main()函数。

(正确)
24. C语言中rewind函数使位置指针回到文件的开头位置,而fseek函数使位置指针移到指定的位置。

(正确)
25. 有unsigned int a=16;a=a>>2;则a的值是4.(正确)
26. 在C程序中“%”是只能用于整数运算的运算符,而“/”是既可以用于整数运算又可以用于实数运算的运算符。

(正确)
27. 函数的实参可以传递级形参,形参也可以传递给实参。

(错误)
28. 数组名是指标常量,不需要也不能为其赋值;指针是变量,使用前需对其赋值。

(正确)
29. 有unsigned int a=16;a=a<<2;则a的值是64。

(正确)
30. 若有static int a[10];则a数组的10个元素的值都是0。

(正确)
31. 在C的if语句中,用作判断的表达式只能是关系表达式或逻辑表达式。

(错误)
32. 一个无符号整数各数字往左移动2位后,一定是原数的4倍。

(错误)
33. #define命令是在编译之前处理的。

(正确)
34. 自增自减运算符++,--可以用于int型、floa型和double型资料。

(正确)
35. 用户标识符中可以出现下划线和中划线(减号)。

(错误)
36. 若有int x,y,z;x=y=z=1;则执行++x&&++y&&++z后,x,y,z的值分别为2,1,1.(错误)
37. 用数组名作为实参时,把实参数组的起始地址传递给形参数组,因此形参数组和实参数组同一段内存单元,改变形参数组的值,也就改变了实参数组的值。

(正确)
38. 若有int a,b;则a=(b*b>b)的值是1。

(错误)
39. 若定义char*str;则str=”BOOK”;正确的。

(正确)
40. 自增运算符和自减运算符的结合方向也是“自左向右”。

(错误)
41. C语言中,函数的隐含存储类别是extern(正确)
42. 格式字符%md中的m只能为正,不能为负。

(错误)
43. 在C中能代表逻辑值“假”的是0。

(正确)
44. 数组类型不是C的基本数据类型,而是一种构造类型。

(正确)
45. 数组名代表数组的起始地址。

(正确)
46. 函数的实参可以传递给形参,形参也可以传递给实参。

(错误)。

相关文档
最新文档