扬州大学c语言0600706期末试题.docx
- 文档编号:26103387
- 上传时间:2023-06-17
- 格式:DOCX
- 页数:30
- 大小:39.31KB
扬州大学c语言0600706期末试题.docx
《扬州大学c语言0600706期末试题.docx》由会员分享,可在线阅读,更多相关《扬州大学c语言0600706期末试题.docx(30页珍藏版)》请在冰豆网上搜索。
扬州大学c语言0600706期末试题
200606
一、单选题(每小题2分,共30分)
1.下列表示中,不是C语言合法字符常量的是
(1)。
2.A.‘\0xff’B.‘\65’C.‘$’D.‘\x2a’
3.设有如下定义:
4.floaty=3.45678;
5.intx;
6.则下列表达式中能实现将y中数值保留至小数点后2位,小数点后第3位四舍五入的表达式是
(2)。
7.A.y=(y*100+0.5)/100.0B.x=y*100+0.5,y=x/100.0
C.y=y*100+0.5/100.0D.y=(y/100+0.5)*100.0
8.下列表示中,能在C语言中正确定义三个整型变量a、b、c,且能给它们均赋值5的是(3)。
9.A.inta=b=c=5;B.inta,b,c=5;
10.C.inta=5,b=5,c=5;D.a=b=c=5;
11.设有数学命题“当整数a的值为奇数时,表达式的值为真,否则为假”,则下列C语言表达式中,不能满足该数学命题要求的是(4)。
12.A.a%2==1B.!
(a%2)C.!
(a%2==0)D.a%2
13.执行下列程序段后,变量i的值是(5)。
14.inti=1;
15.switch(i){case0:
i+=1;
16.case1:
i+=1;
17.case2:
i+=1;
18.default:
i+=1;
19.}
20.A.1B.2C.3D.4
21.在C语言中,break语句(6)。
22.A.能用在C源程序中的任何位置B.只能用在循环体内
23.C.只能用在循环体内或switch语句中D.可用作函数内的任一语句
24.设有程序段:
25.intx=10;
26.while(x=0)x=x-1;
27.则下列叙述中正确的是(7)。
28.A.while循环执行10次B.循环是无限循环
29.C.循环体语句一次也不执行D.循环体语句只执行一次
30.在C语言中,数组名可作为实在参数传递给函数的形式参数,此时,作为实在参数的数组名被处理为(8)。
31.A.该数组的长度B.该数组的元素个数
32.C.该数组中元素的值D.该数组的首地址
33.以下关于函数定义的叙述中,正确的是(9)。
34.A.构成C语言源程序的基本单位之一是函数定义
35.B.所有被调用的函数必须在调用之前定义
36.C.main函数的定义必须放在其他函数定义之前
37.D.定义main函数时,main函数的函数体内必须至少包含一条语句或声明
38.设有下列程序段:
39.structperson{charname[9];intage;};
40.structpersonclass[10]={“John”,17,“Paul”,19,“Mary”,18,“adam”,16};
41.则下列选项中,能打印出字母“M”的语句是(10)。
42.A.printf(“%c\n”,class[3].name);
43.B.printf(“%c\n”,class[3].name[1]);
44.C.printf(“%c\n”,class[2].name[1])
45.D.printf(“%c\n”,class[2].name[0])
46.以下能将字符串“good!
”正确地存放在字符数组s中,或使指针变量s能正确地指向这个字符串的是(11)。
47.A.chars[5]={‘g’,‘o’,‘o’,‘d’,‘!
’};
48.B.chars[5];s=“good!
”;
49.C.ints[5]=“good!
”;
50.D.char*s;s=“good!
”;
51.若有语句:
52.chars1[10],s2[10]=“books”;
53.则下列表示中,能正确地将字符串“books”赋给数组s1的是(12)。
54.A.s1={“books”}B.strcpy(s1,s2)
55.C.s1=s2D.strcpy(s2,s1)
56.以下正确的函数说明语句是(13)。
57.A.intfun(inta,b)B.floatfun(inta;intb)
58.C.doublefun()D.intfun(chara[][])
59.设有说明语句
60.char*s=“abcd”;
61.则执行s+=2后,*s的内容是(14)。
62.A.aB.bC.cD.cd
63.下列对typedef的叙述中,错误的是(15)。
64.A.用typedef可以增加新类型
65.B.用typedef可以定义各种类型名,但不能用来定义变量
66.C.用typedef只是将已存在的类型用一个新的标识符来代表
67.D.使用typedef有利于程序的通用和移植
二、填空题(每空1分,共20分)
1.一个C语言源程序是由若干个
(1)组成的;C语句的分隔符是
(2)。
2.程序的三种基本控制结构分别是(3)、选择和(4)。
3.数学表达式“
”所对应的C语言表达式为(5)。
在C程序中要计算这样的表达式,通常必须包含头文件(6)。
4.在C语言中,声明变量的格式为:
5.存储类别类型名变量名表;
6.其中,变量有四种存储类别,它们分别是(7)、register、extern和(8)。
7.若有定义:
“inta[3][4]={{1,2,3},{4,5},{6,7,8}};”,则执行该说明语句后,a[1][2]=(9),a[2][1]=(10)。
8.在C程序中,若有函数定义如下:
9.voidf()
10.{staticinti;
11.…}
12.其中,void表明函数f(11);而i是一个(12)整型变量。
13.在C语言程序设计中,预处理命令行必须以(13)开头,该命令是在(14)被处理的。
14.若一结构的成员项是指向本结构类型的结构指针,则称该结构为(15)。
定义这种结构类型的一般形式如下:
15.structnode{intdata;
16.(16)next;
17.};
18.在C语言源程序中,函数内部说明局部变量时若缺省了存储类型,则该变量的存储类型为(17);定义一个函数时,若缺省该函数返回值的类型,则默认返回值为(18)型。
19.设有以下说明语句:
20.structstudent{intx;
21.int*y;
22.};
23.intdt[4]={1,2,3,4};
24.structstudenta[4]={10,&dt[3],20,&dt[2],30,&dt[1],40,&dt[0]},*p=a;
25.则表达式++p->x的值为(19),表达式*(++p)->y的值为(20)。
三、阅读程序写出结果(每小题4分,共20分)
1.下列程序的运行结果是。
2.#include
3.main()
4.{ints=0,n=135;
5.do{s+=n%10;
6.n/=10;
7.}while(n);
8.printf(“%d\n”,s);
9.getch();
10.}
11.下列程序的运行结果是。
12.#include
13.voidf(intx,inty)
14.{intt;
15.t=x;x=y;y=t;
16.}
17.main()
18.{inta=1,b=100;
19.f(a,b);
20.printf(“%d,%d\n”,a,b);
21.getch();
22.}
23.以下程序运行的结果是。
24.#include
25.#include
26.main()
27.{inti;
28.for(i=0;i<3;i++)
29.printf("%3d",f(i));
30.getch();
31.}
32.f(intx)
33.{inty=0;
34.staticintz=1;
35.y++,z++;
36.return(x+y+z);
37.}
4.下面程序段运行的结果是__________________。
#include
#include
main()
{inti=1,j=0,m=1,n=1;
switch(i)
{case1:
m++;n++;
case2:
switch(++j)
{case1:
m++;break;
case2:
n++;
}
case3:
m++;break;
case4:
n++;
}
printf("%d,%d\n",m,n);
getch();
}
5.下面程序段运行的结果是__________________。
#include
#include
main()
{charch[7]=“1234”;
inti,s=0;
for(i=strlen(ch)-1;i>=0;i--)
s=s*10+ch[i]-‘0’;
printf(“%d\n”,s);
getch();
}
四、完善程序题(每空1分,共30分)
1.以下程序的功能是统计正整数的各位数字中零的个数,并求出各位数字中的最大者。
请填空。
2.#include
3.main()
4.{longintn,t;
5.intcount=0,max=0;
6.scanf("%ld",&n);
7.while(n)
8.{t=
(1);
9.if(t==0)count++;
10.elseif(max 11. (2); 12.} 13.printf("count=%d,max=%d\n",count,max); 14.getch(); 15.} 2.以下程序的功能是把从键盘上输入的十进制数n以八进制数的形式输出,请填空。 3.#include 4.main() 5.{ 6.intc[64],i=0,base=8; 7.longn; 8.printf("Enteranumber: \n"); 9.scanf("%ld",&n); 10.do{c[i++]=(3); 11.(4); 12.}while(n); 13.printf("Transmitenewbase: \n"); 14.for(--i;i>=0;--i) 15.printf("%d",(5)); 16.printf("\n"); 17.getch(); 18.} 19.程序中函数doublemycos(doublex)的功能是: 根据下列公式计算cos(x)的近似值,直到某一项的绝对值小于10-6为止。 在主函数中输入x值,输出cos(x)的值。 请填空。 20. 21.#include 22.#include 23.#include 24.doublemycos(doublex) 25.{intn=1; 26.doublesum=0,term=1.0; 27.while((6)) 28.{sum+=term; 29.term*=(7); 30.n=n+2; 31.} 32.returnsum; 33.} 34.main() 35.{ 36.doublex; 37.scanf("%lf",&x); 38.printf("cos(%lf)=%lf\n",x,(8)); 39.getch(); 40.} 41.设有函数pow定义如下: 42.pow(intx,inty) 43.{inti,j=1; 44.for(i=1;i<=y;++i)j=j*x; 45.return(j); 46.} 47.下列改变后的函数欲取消上述函数中的局部变量i而使pow的功能不变。 请填空。 48.pow(intx,inty) 49.{intj; 50.for((9);(10);(11))j=j*x; 51.return(j); 52.} 53.设有一表头结构如下: num name birthday day month year 其中,num为长整型;name为长度不超过10的字符串型;day和year为整型;month为长度不超过3的字符串型。 下列程序段用于设计一结构类型描述上述结构。 请填空。 structdate {intday;charmonth[4];intyear;}; structstu {(12); (13); (14); }; 6.有如下说明和变量的定义: structnode { chardata; structnode*link; }*p,*q; 设p、q已分别申请到一个结点空间,现要求把结点q连接到结点p之后。 写出建立如下图所示的存储结构和赋值所需的语句。 datalinkdatalink ↑p↑q scanf(“%c%c”,&p->data,&q->data);/*输入数据为: 59<回车>*/ (15);/*结点q连接到结点p之后*/ (16)=NULL; 6.一个简易的明码密码对照表如下: a c e g h j l n P \0 f o n p t i u d e \0 以下程序中函数voidencode(char*s1,char*s2)的功能是完成一个字符串的加密,将s1字符串中的字符经过变换后保存到s2指向的字符数组中。 二维数组cs用于保存了上述明码密码对照表,第一行是明码字符,第二行是对应的密码字符。 加密方法: 从s1字符串中每取一个字符,均在cs表第一行中查找有无该明码字符,若找到则将对应的密码字符放入s2中,否则将s1中原来的字符放入s2中。 #include #include charcs[2][10]={"aceghjlnp","fonptiude"}; voidencode(char*s1,char*s2) {intn,i,j; for(n=0;s1[n]! ='\0';n++) {for(i=0;i<10&&(17);i++); if((18))s2[n]=s1[n]; elses2[n]=(19); } s2[n]='\0'; } main() {charts[80]="jntwrnwt",td[80]; encode((20)); puts(ts);puts(td); getch(); } 8.以下程序在b数组中查找与y值相同元素的所在位置。 main() {intb[20],y,i; printf(“Enter10Integers: \n”); for(i=0;i<20;i++) scanf(“%d”,b+i); printf(“Entery: ”); scanf(“%d”,&y); (21); while(i<20) {if((22))break; ++i; } if((23)) printf(“%5d’spositionis%4d\n”,y,i); else printf(“%disnotfound! \n”,y); } 9.函数char*conj(char*p1,char*p2)的功能是实现将两个字符串p1和p2连接起来(要求该函数返回字符串p1的首地址),请填空。 10.#include 11.char*conj(char*p1,char*p2) 12.{char*p=p1; 13.while(*p1)(24); 14.while(*p2){(25)____________;p1++;p2++;} 15.*p1=’\0’; 16.return(26); 17.} 18.main() 19.{chars1[30],s2[10],*p; 20.gets(s1);gets(s2); 21.p=conj(s1,s2);printf(“%s\n”,p); 22.} 23.以下程序对一组点坐标(x,y)按升序进行排序。 要求: 先按x的值排序,若x的值相同,则按y的值排序(排序算法为直接选择排序)。 请填空。 24.#include 25.#defineN5 26.typedefstruct 27.{intx; 28.inty ; 29.}POINT; 30.voidpoint_sort(POINT*x,intn) 31.{POINTt; 32.inti,j,k; 33.for(i=0;i 34.{(27); 35.for(j=(28);j 36.if((x[k].x)>(x[j].x))k=j; 37.elseif((29)&&x[k].y>x[j].y)k=j; 38.if((30)) 39.{t=x[i],x[i]=x[k],x[k]=t;} 40.} 41.} main() {POINTa[N]; inti=0; while(i {scanf(“%d%d”,&a[i].x,&a[i].y); i++; } point_sort(a,N); for(i=0;i printf(“\n%d,%d”,a[i].x,a[i].y); } 200706 一、单选题(每小题2分,共30分) 68.用于结构化程序设计的3种基本结构是 (1)。 69.A.顺序结构、选择结构、循环结构B.if,switch,break 70.C.for,while,do-whileD.if,for,continue 71.下列各组中不全是合法变量名的是 (2)。 72.A.day,lotus_1_2_3,x1B.Abc,_above,basic 73.C.M.John,year,sumD.YEAR,MONTH,DAY 74.C语言中,下列运算符中运算对象必须是整型的是(3)。 75.A.%=B./C.=D.<= 76.能在C语言中定义三个整型变量a、b、c,并能给它们均赋值5的正确表示是 77.(4)。 78.A.inta=b=c=5;B.inta,b,c=5; 79.C.inta=5,b=5,c=5;D.a=b=c=5; 80.设有数学命题“当整数a的值为偶数时,表达式的值为真,否则为假”,则下列C语言表达式中,不能满足该数学命题要求的是(5)。 81.A.a%2==0B.! (a%2==1)C.! (a%2)D.a%2 82.若有说明语句: 83.charc=’\72’; 84.则变量c(6)。 85.A.包含1个字符B.包含2个字符 86.C.包含3个字符D.说明不合法 87.在C语言中,break语句(7)。 88.A.能用在C源程序中的任何位置B.只能用在循环体内 89.C.只能用在循环体内或switch语句中D.可用作函数内的任一语句 90.设有程序段: 91.intx=-1; 92.do{ 93.x=x*x; 94.} 95.while(! x); 96.则下列叙述中正确的是(8)。 97.A.循环是无限循环B.循环体语句执行1次 98.C.循环体语句执行2次D.有语法错误 99.在C语言中,数组名可作为实在参数传递给函数的形式参数,此时,作为实在参数的数组名被处理为(9)。 100.A.该数组的长度B.该数组的首地址 101.C.该数组中元素的值D.该数组的元素个数 102.以下叙述中,正确的是(10)。 103.A.C语言源程序总是从第一个函数开始执行 104.B.在C语言程序中,调用函数必须在main()函数中定义 105.C.C语言源程序总是从main()函数开始执行 106.D.C语言程序中的main()函数必须放在程序的开始地方 107.若已定义的函数有返回值,则以下关于该函数调用的叙述中,错误的是(11)。 108.A.函数调用可以作为独立的语句存在 109.B.函数调用可以作为一个函数的实参 110.C.函数调用可以出现在表达式中 111.D.函数调用可以作为一个函数的形参 112.设有下列程序段: 113.structp{charname[9];intage;}; 114.structpclass[10]={“John”,17,“Paul”,19,“Mary”,18,“Adam”,16}; 115.则下列选项中,能打印出字母“P”的语句是(12)。 116.A.printf(“%c\n”,class[1].name[0]) 117.B.printf(“%c\n”,class[2].name[0]); 118.C.printf(“%c\n”,class[1].name[1]); 119.D.printf(“%c\n”,class[2].name); 120.若有以下调用语句,则错误的fun函数的首部是(13)。 121.main() 122.{inta[50],n;…… 123.fun(n,&a[9]);……} 124.A.voidfun(intm,intx[])B.voidfun(ints,inth[50]) 125.C.voidfun(intp,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 扬州 大学 语言 0600706 期末 试题