C语言程序设计期末考试试题及答案
- 格式:pdf
- 大小:107.09 KB
- 文档页数:9
C语⾔程序设计期末考试试题及答案
C语⾔程序设计试题
(2008 /2009 学年第⼆学期)
⼀.选择题(满分30分,每题2分)
都定义为int类型且初值为0,则以下不正确得赋值语句就是 D 。A、a=b=c+8; B、 a+=y+3;
C、 c++;
D、a+b+c
2、已知int j,i=1;执⾏语句“j=i++;”后,变量i得值就是B .
A、 1 B、 2 C、–1 D、-2
3、执⾏下⾯程序:
#include "stdio、h”voidmain()
{int a=1,b=2,c=3;
c=(a+=a+2),(a=b,b+3);
printf(“%d,%d,%d”,a,b,c);
}
则输出结果就是: A 。A、 2,2,4 B、 4,2,3 C、5,5,3 D、4,2,5
4.若要求在if后⼀对圆括号中表⽰a不等于0得关系,则能正确表⽰这⼀关系得表达式为 D 。
A、 a〈〉0
B、!a
C、a=0
D、 a
5、 for (j=0;j〈11;j++);循环结束后,j得值就是 B 。
A、12
B、 11
C、 10
D、 9
6、C语⾔中函数返回值得类型由D决定得。
A、 return语句中得表达式类型B、调⽤该函数得主调函数得类型
C、调⽤函数时临时决定
D、定义函数时所指定得函数类型
7、下列说法中正确得就是 B 。
A 在调⽤⽤户⾃定义函数时,必须对其进⾏声明.
B 函数可以返回⼀个值,也可以什么值也不返回。
C 说明函数时,必须明确参数得类型与返回值。
D 在程序设计中空函数没有什么作⽤。
8、若int i=10;执⾏下列程序后,变量i得正确结果就是 D 。
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
9、下列语句中不正确得字符串赋值或初始化得就是 C 。
A.char str[10]={”strings"}; B、char str[8]={’s','t’,'r','i','n’,'g’,'s’,’\0'};
C、char str[10]; str= "strings";
D、charstr[]=”strings";
10、有如下程序:
#include
void main(){
int a=1,b=0,c=0;
if(a<b)if (b〈0) c=0;
else c++;
printf (“%d\n”,c);
}
该程序得运⾏结果就是D。
A、 3 B、 2 C、 1 D、011、在函数调⽤,对参数传递得说法正确得就是 A .
A 实参与形参各占⼀个独⽴得存储单元。
B实参与形参始终共⽤⼀个相同得存储单元。C 可以由⽤户指定实参与形参就是否共⽤⼀个存储单元。
D 可以由系统指定实参与形参就是否共⽤⼀个存储单元
12、以下正确得程序段就是 C 。
A、 char str1[ ]= ”12345", str2[ ]= "abcdef"; strcpy(str
1,str2);B、char str[10],*st="abcde"; strcat(str, st);
C、char str[10]=””,*st=”abcde"; strcat(str, st);
D、char*st1="12345”, *st2="abcde”;strcat(st1,
st2);
13、若有定义:int *p[4];则标识符p B。A、就是⼀个指向整型变量得指针
B、就是⼀个指针数组名
C、就是⼀个指针,它指向⼀个含有四个整型元素得⼀维数组
D、说明不合法
装订线
14、以下程序得运⾏结果就是 C 。
typedef union
{longa[1];
intb[2];
char c[8];
} TEST;
TESTm;
main( ){
printf(“%d\n”,sizeof(m));
}A、32
B、 16
C、 8
D、24
15、设有以下结构体类型:struct st
{char??name[8];
int ?num;
float ?s[4];
}student[50];
并且结构体数组student中得元素都已有值,若要将这些元素写到硬盘⽂件中,以下不正确得形式就是 C 。A、fwrite(student,sizeof(struct st),50,fp);
B、fwrite(student,50*sizeof(struct st),1,fp);C、 fwrite(student,25*sizeof(struct st),25,fp);
D、for(i=0;i〈50;i++)
fwrite(student+i,sizeof(struct st),1,fp);
⼆、填空题(满分20分,每空2分),并且只能有⼀个主函数。
2.设x与y均为int型变量,且x=1,y=2,则表达式3+x/y得值为3。
3.若有定义:int a[]={2,4,6,8,10,12},*p=a;则*(p+1)得值就是 4 .
4.设x=0xAB,若要通过x|y使x低4位置1,⾼4位不变,则y= 0x0F .
5.测试char型变量m得最⾼位数据就是否为1得表达式就是a&0x80。
6.若x=2,y=-3则x&&y得结果就是1。
7.与⼆进制数101等值得⼗进制数为 5 .
8.定义int i=1;执⾏语句 while(i++<5);后,i得值为6。
9.下⾯程序得运⾏结果为22222。
#include 〈stdio、h〉
void main()
{
int i=2,j=5,s;
s=i;
for (;--j;)
s=s*10+i;
printf(“%d",s);
}10.写出程序得执⾏结果:i=10,j=11main ( ){ int i=0,j=0;
while (i〈10)
i++;
while (j++<10) ;printf(“i=%d, j=%d\n”,i,j);
}
三、读程序写结果(满分16分,每题4分).
#include〈stdio、h〉voidmain()
{
int a=0,b=1;
intfun(int a,intb);printf("%d\n”,fun(a,b));
printf(”%d\n”,fun(a,b));
}intfun(intm,int n)
{statics=1;
s++;
return(s*(m+n));}
2
程序运⾏得结果为: 3 。
装订线2、以下程序得输出结果就是 3,2 。
#include ”stdio、h"struct?chain
{intx;
int y;
struct chain?*p;
}m[2];void main( ){
m[0]、x=1;
m[0]、y=2;
m[1]、x=3;
m[1]、y=4;
m[0]、p=&m[1];m[1]、p=m;
printf(”%d,%d\n”,(m[0]、p)—〉x,(m[1]、p)->y);
}3、下⾯程序得运⾏结果就是。
#include#include 〈string、h〉
void?fun(char *w,int n)
{
char t,*s1,*s2;
s1=w;
s2=w+n—1;while(s1〈s2)
{
t=*s1;
*s1=*s2;
*s2=t;
s1++;
s2—-;}
}void?main( )
{
char p[]="1234567";fun(p, strlen(p));
puts(p);
}4、下⾯程序得输出结果为 4,2 .
#include?"stdio、h"struct ks {int a;int *b;
}s[4],*p;void main()
{
int n=1,i;
printf(”\n");for(i=0;i〈4;i++)
{
s[i]、a=n;
s[i]、b=&s[i]、a;
n=n+1;
}
p=&s[0];p++;
printf(”%d,%d\n",(++p)-〉a,(p++)->a);}
四、程序设计(满分34分)
,判断某⼀年就是否为闰年。(6分)
#include 〈stdio、h〉void main()
{int year;
printf(“input year=”);
scanf(“%d”,&year);
if ((year%4==0&&year%100!0)||year%400==0)
printf(“%4d is a leap year \n",year);
else
printf(“%4dis not a leap year \n”,year);
}2、⽤公式求得近似值,直到最后⼀项得绝对值⼩于为⽌,请编程实现。(8
分)#include “math、h”voidmain(){
int s;float n,t,pi;
t=1; pi=0; n=1、0; s=1;
while((fabs(t))〉1E-6)
{
pi=pi+t;
n=n+2;
s=-s;
装
订
线
装
订
线
装t=s/n;
}
pi=pi*4;
printf(“pi=%10。6f\n”,pi);
}
3、编写程序,利⽤⼦函数实现计算字符串得长度。(10分)#include
int length(char*s);void?main( )
{
chara[100];
int?i;
printf(”Please input thestring:\n");gets(a);
i=length(a);
printf("\nThe length of string is %d",i);}
intlength(char*s)
{