C语言期末考试试题(谭浩强版)2011-7-8 20:55
2011-7-8 21:23最佳答案 C语言期末考试试题
20080412日 星期六 00:22
1选择题 (24 ,每小题 2 )
1 .已知函数 fread 得调用形式为 fread(buffer,size,count,fp), 其中 buffer 代表得就是 ()A 存放读入数据项得存储区
B 存放读入数据得地址或指向此地址得指针
C 一个指向所读文件得文件指针
D 一个整形变量 , 代表要读入得数据项总数
2.以下程序得输出结果为 ( )
main( )
{
int i=010,j=10;
printf("%d,%d\n",i++,j--);
}
A 11,9
B 9,10
C 8,10
D 9,9
3•aint型变量执行下列赋值语句后,a得取值分别就是()
a=125534;
a=200/3;
a=(int)125521%4;
a=5<<2;
A 1256311
B 1256120
C 12566666663120
D 1255346666666220
4.i k 都就是 int 类型 for 循环语句 ( )
for(i=0k=-1;k=1;i++k++)
printf("****\n");
A 循环结束得条件不合法
B 循环体一次也不执行
C 循环体只执行一次
D 就是无限循环
5.以下程序得输出结果为 ( )
c语言中struct
main( )
{
char c;
int i;
for(i=65;i<68;i++)
c=i+32;
switch(c)
case 'a':
case 'b':
case 'c':printf("%c,",c);break; default:printf("end");
}
}
}
A a,b,c,end
B a,a,a,end
C a,a,a,
D a,b,c,
6•函数调用语句fseek(fp,-10L,2);得含义就是()
A 将文件位置指针从文件末尾处向文件头得方向移动 10个字节
B 将文件位置指针从当前位置向文件头得方向移动    10 个字节
C 将文件位置指针从当前位置向文件末尾方向移动    10 个字节
D 将文件位置指针移到距离文件头 10 个字节处
7•以下程序得输出结果为()
main( )
{
int i=0,j=0;
while(s1[i]!='\0')
i++;
while(s2[j]!='\0') s1[i++]=s2[j++];
s1[i]=0; printf("%s\n",s1);
}
A side
B country
C sidetry
D countryside
8. 下列说法不正确得就是()
A 主函数 main 中定义得变量在整个文件或程序中有效
B 不同函数中 ,可以使用相同名字得变量
C 形式参数就是局部变量
D 在一个函数内部 ,可以在复合语句中定义变量    ,这些变量只在本复合语句中有效
9. 在下列程序段中,枚举变量cl得值就是()
enum color { red,yellow,blue=4,green,white}c1;
c1=yellow;
c1=white;
A 1
B 3
C 5
D 6
10.设有说明 int (*ptr)(); 其中标识符 ptr 就是( )
A 就是一个指向整形变量得指针
B 就是一个指针 , 它指向一个函数值就是 int 得函数
C 就是一个函数名
D定义不合法
11.定义由n个指向整形数据得指针组成得数组    p,其正确得方式为()
A int p;
B int (*p)[n];
C int *p[n];
D int (*p)( );
12.具有相同类型得指针类型变量    p与数组a不能进行得操作就是()
A p=a;
B *p=a[0];
C p=&a[0];
D p=&a;
2判断对错对得划错得划“X”    (20,每小题2)
1.参加位运算得数据可以就是任何类型得数据。    ( )
2.若有定义与语句 :
int a;
char c;
float f;
scanf("%d,%c,%f",&a,&c,&f); 若通过键盘输入 :10 A 12 5 a=10,c=A',f=125。    ( )
3.C语言把文件瞧作就是一个字符    (字节)得序列。    ()
4.若有宏定义 :
#define S(a,b) t=a;a=b;b=t
由于变量 t 没定义 ,所以此宏定义就是错误得。    ( )
5•Turbo C下面得定义与语句就是合法得   
file *fp;
fp=fopen("a txt","r");    ( )
6.若有定义
char s[ ] = "chi na";
Turbo C系统为数组s开辟6个字节得内存单元。    ()
7.若有定义与语句
int a[3][3] = {{3,5},{8,9},{12,35}},i,sum=0;
for(i=0;i<3;i++)
sum+=a[i][2-i];
sum=21 。    ( )
8.若有定义与语句
struct student
int num; char name[10]; float score;
}
s[5]={{1,"lili",98 5},{9,"xiaohua",66}},*p=s;printf("%d",*p++); 输出结果就是 1 ( )
9.在程序中定义了一个结构体类型后    ,可以多次用它来定义具有该类型得变量。 ( )
10.Turbo C ,此定义与语句就是合法得    :
enum aa{ a= 5,b,c}bb;
bb=(enum aa)5;    ( )
3写出下列程序得运行结果 (36 , 每小题 6 )
1
main( )
{
int i=29,j=6,k=2,s;
s=i+i/j%k-9; //s=i+(i/j)%k-9
printf(    s=n%d ,s);
}
2
main( )
{
int x=31,y=2,s=0;
do
{
s-=x*y;
x+=2;y-=3;
}
while(x%3==0);    // 先执行 ,后判断
printf( x=%d    n,x,y,s);
}
3
main( )
{
int a[6] = {10,20,30,40,50,60},i;
invert(a,0,5);
for(i=0;i<6;i++)
printf( %d,,a[i]);
printf(    n“” );
}
invert(int s[ ],int i,int j)    // 倒置
{
int t;
if(i<j)
t=s[i];
s[i]=s[j];
s[j]=t;
}
}
4
#include <stdio h>
main()
{
char str[ ]="The C program",c;
int i;
for(i=2;(c=str[i])!='\0';i++)
{
switch(c)
{
case 'g': ++i; break;    //由于++i,跳过了 g后面得1个字母
case 'o': continue;
default: printf(    %c,c); continue;
}
printf( * );
}
printf( n“” );
}
5
struct w // 结构体
{
char low;
char high;
};
union u // 共用体
{
struct w byte;
short word;
}uw;
main( )
{
int result;
uwword=0x1234;
printf("word value:%04x\n",uw word) ; printf("high byte:%02x\n",uw bytehigh); printf("low byte:%02x\n",uw bytelow); uw byte low=0x74;
printf("word value:%04x\n",uw word) ;
result=uw word+0x2a34;
printf("the result:%04x\n",result);
}
6.
main()
{
char *s2="I love China!",**s1=&s2;
char *s3,c,*s4="w";
s3=&c;
*s3='H';
s2=s2+2;
printf("%s\t%c\t%s\t%c\n",s2,*s3,s4,**s1);
}
4阅读下列程序 ,在 处填入适当内容 ,使程序完整 (20 ,每个空 2 )
1、百马百担问题 :100 匹马 ,100 担货,大马驮 3 ,中马驮 2 ,两匹小马驮 1 ,问大、 中、小马各多少匹 ?

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。