扬州大学C语言0606、0706期末试题Word格式文档下载.doc
《扬州大学C语言0606、0706期末试题Word格式文档下载.doc》由会员分享,可在线阅读,更多相关《扬州大学C语言0606、0706期末试题Word格式文档下载.doc(16页珍藏版)》请在冰豆网上搜索。
(a%2==0)D.a%2
5.执行下列程序段后,变量i的值是(5)。
inti=1;
switch(i){case0:
i+=1;
case1:
case2:
default:
}
A.1B.2C.3D.4
6.在C语言中,break语句(6)。
A.能用在C源程序中的任何位置B.只能用在循环体内
C.只能用在循环体内或switch语句中D.可用作函数内的任一语句
7.设有程序段:
intx=10;
while(x=0)x=x-1;
则下列叙述中正确的是(7)。
A.while循环执行10次B.循环是无限循环
C.循环体语句一次也不执行D.循环体语句只执行一次
8.在C语言中,数组名可作为实在参数传递给函数的形式参数,此时,作为实在参数的数组名被处理为(8)。
A.该数组的长度B.该数组的元素个数
C.该数组中元素的值D.该数组的首地址
9.以下关于函数定义的叙述中,正确的是(9)。
A.构成C语言源程序的基本单位之一是函数定义
B.所有被调用的函数必须在调用之前定义
C.main函数的定义必须放在其他函数定义之前
D.定义main函数时,main函数的函数体内必须至少包含一条语句或声明
10.设有下列程序段:
structperson{charname[9];
intage;
};
structpersonclass[10]={“John”,17,“Paul”,19,“Mary”,18,“adam”,16};
则下列选项中,能打印出字母“M”的语句是(10)。
A.printf(“%c\n”,class[3].name);
B.printf(“%c\n”,class[3].name[1]);
C.printf(“%c\n”,class[2].name[1])
D.printf(“%c\n”,class[2].name[0])
11.以下能将字符串“good!
”正确地存放在字符数组s中,或使指针变量s能正确地指向这个字符串的是(11)。
A.chars[5]={‘g’,‘o’,‘o’,‘d’,‘!
’};
B.chars[5];
s=“good!
”;
C.ints[5]=“good!
D.char*s;
12.若有语句:
chars1[10],s2[10]=“books”;
则下列表示中,能正确地将字符串“books”赋给数组s1的是(12)。
A.s1={“books”}B.strcpy(s1,s2)
C.s1=s2D.strcpy(s2,s1)
13.以下正确的函数说明语句是(13)。
A.intfun(inta,b)B.floatfun(inta;
intb)
C.doublefun()D.intfun(chara[][])
14.设有说明语句
char*s=“abcd”;
则执行s+=2后,*s的内容是(14)。
A.aB.bC.cD.cd
15.下列对typedef的叙述中,错误的是(15)。
A.用typedef可以增加新类型
B.用typedef可以定义各种类型名,但不能用来定义变量
C.用typedef只是将已存在的类型用一个新的标识符来代表
D.使用typedef有利于程序的通用和移植
二、填空题(每空1分,共20分)
1.一个C语言源程序是由若干个
(1)组成的;
C语句的分隔符是
(2)。
2.程序的三种基本控制结构分别是(3)、选择和(4)。
3.数学表达式“”所对应的C语言表达式为(5)。
在C程序中要计算这样的表达式,通常必须包含头文件(6)。
4.在C语言中,声明变量的格式为:
存储类别类型名变量名表;
其中,变量有四种存储类别,它们分别是(7)、register、extern和(8)。
5.若有定义:
“inta[3][4]={{1,2,3},{4,5},{6,7,8}};
”,则执行该说明语句后,a[1][2]=(9),a[2][1]=(10)。
6.在C程序中,若有函数定义如下:
voidf()
{staticinti;
…}
其中,void表明函数f(11);
而i是一个(12)整型变量。
7.在C语言程序设计中,预处理命令行必须以(13)开头,该命令是在(14)被处理的。
8.若一结构的成员项是指向本结构类型的结构指针,则称该结构为(15)。
定义这种结构类型的一般形式如下:
structnode{intdata;
(16)next;
};
9.在C语言源程序中,函数内部说明局部变量时若缺省了存储类型,则该变量的存储类型为(17);
定义一个函数时,若缺省该函数返回值的类型,则默认返回值为(18)型。
10.设有以下说明语句:
structstudent{intx;
int*y;
};
intdt[4]={1,2,3,4};
structstudenta[4]={10,&
dt[3],20,&
dt[2],30,&
dt[1],40,&
dt[0]},*p=a;
则表达式++p->
x的值为(19),表达式*(++p)->
y的值为(20)。
三、阅读程序写出结果(每小题4分,共20分)
1.下列程序的运行结果是。
#include<
conio.h>
main()
{ints=0,n=135;
do{s+=n%10;
n/=10;
}while(n);
printf(“%d\n”,s);
getch();
}
2.下列程序的运行结果是。
voidf(intx,inty)
{intt;
t=x;
x=y;
y=t;
}
main()
{inta=1,b=100;
f(a,b);
printf(“%d,%d\n”,a,b);
getch();
3.以下程序运行的结果是。
#include<
stdio.h>
main()
{inti;
for(i=0;
i<
3;
i++)
printf("
%3d"
f(i));
getch();
}
f(intx)
{inty=0;
staticintz=1;
y++,z++;
return(x+y+z);
4.下面程序段运行的结果是__________________。
main()
{inti=1,j=0,m=1,n=1;
switch(i)
{case1:
m++;
n++;
case2:
switch(++j)
{case1:
break;
case2:
}
case3:
case4:
}
printf("
%d,%d\n"
m,n);
getch();
5.下面程序段运行的结果是__________________。
{charch[7]=“1234”;
inti,s=0;
for(i=strlen(ch)-1;
i>
=0;
i--)
s=s*10+ch[i]-‘0’;
printf(“%d\n”,s);
}
四、完善程序题(