2010级C语言期末考试试卷(A卷)

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

桂林电子科技大学信息科技学院试卷
2010-2011 学年第 2 学期课号I04BT014
课程名称C语言程序设计(A卷;、闭卷)适用班级(或年级、专业)10级、全院
一单项选择题(每题2分,共40分)
1 以下叙述正确的是。

A C程序基本组成单位是语句
B 简单C语句必须以分号作为结束符
C C程序每一行只能写一个语句
D 注释语句可以嵌套
2 设a和b均为int型变量,则执行以下语句后的输出为。

int a=20; int b=3; printf("%d\n",a+=(b%=2));
A 0
B 20
C 21
D 22
3 设int型占2个字节,且int i=-2;,则语句printf("%u",i);的输出结果为。

A -2
B -32768
C 65535
D 65534
4 以下程序运行后的输出结果是。

main()
{ double d=3.2; int x,y;
x=1.2; y=(x+3.8)/5.0;
printf("%d\n",d*y);
}
A 0
B 3
C 3.07
D 3.2
5 以下程序运行后的输出结果是。

main()
{ int a=2,b=-1,c=2;
if(a<b)
if(b<0) c=0;
else c++;
printf("%d\n",c);
}
A 0
B 1
C 2
D 3
6 以下程序的执行结果是。

main()
{ int n=9;
while(n>6) { n--; printf("%d",n); }
}
A 987
B 9876
C 8765
D 876
void main()
{ int x=15,y=21,z=0;
switch (x/8)
{ case 2: z=z+1;break;
case 1: z=z+1;
switch (y/21)
{ default : z=z+1;
case 0: z=z+1;break;
}
}
printf("%d\n",z);
}
A 4
B 3
C 2
D 1
8 以下程序的输出结果是。

main()
{
int i=0,a=0;
while(i<20)
{ for(; ;)
if((i%10)==0) break;
else i--;
i+=11;
a+=i;
}
printf("%d\n",a);
}
A 11
B 21
C 32
D 33
9 以下程序执行后的输出结果是。

main()
{
int x=1,y=1;
while(y<=5)
{ if(x>=10) break;
if(x%2==0)
{ x+=5;
continue;
}
x-=3; y++;
}
printf("%d,%d",x,y);
}
A 6,6
B 7,6
C 10,3
D 7,3
void main()
{ int a, b;
for(a=1,b=1; a<=100; a=a+1)
{ if(b>=10) break;
if(b%3==1)
{ b=b+3; continue; };
}
printf("%d\n",a);
}
A 3
B 4
C 5
D 101
11 以下程序的输出结果是。

main()
{ int i,k,a[10],p[3];
k=5;
for(i=0;i<10;i++) a[i]=i;
for(i=0;i<3;i++) p[i]=a[i*(i+1)];
for(i=0;i<3;i++) k+=p[i]*2;
printf("%d\n",k);
}
A 20
B 21
C 22
D 23
12若运行以下程序时输入:2 4 6<回车>,则输出结果是___。

main()
{ int x[3][2]={0},i;
for(i=0;i<3;i++) scanf("%d",x[i]);
printf("%3d%3d%3d\n",x[0][0],x[0][1],x[1][0]);
}
A 2 0 0
B 2 0 4
C 2 4 0
D 2 4 6
13 以下程序运行后的输出结果是。

void reverse(int a[], int n)
{ int i, t;
for(i=0; i<n/2; i++)
{ t=a[i]; a[i]=a[n-1-i]; a[n-1-i]=t; }
}
main()
{
int b[10]={1,2,3,4,5,6,7,8,9,10}, i, s=0 ;
reverse (b, 8);
for(i=6; i<10; i++)
s+=b[i];
printf("%d\n",s);
}
A 22
B 10
C 34
D 30
main()
{ char a[2][4];
strcpy(a,"you"); strcpy(a[1],"me");
a[0][3]='&';
printf("%s\n",a);
}
A you
B you&
C me
D you&me
15 调用函数的实参与被调用函数的形参应有如下关系。

A 只要求实参与形参个数相等
B 只要求实参与形参顺序相同
C 只要求实参与形参数据类型相同
D 上述三点均需具备
16 以下程序运行后的输出结果是。

long fun(int n)
{ long s;
if(n==1||n==2) s=2;
else s=n-fun(n-1);
return s;
}
main()
{
printf("%ld\n",fun(3));
}
A 1
B 2
C 3
D 4
17 以下程序运行后的输出结果是。

void main()
{ int i, x[3][3]={9,8,7,6,5,4,3,2,1}, *p=&x[1][1];
for(i=0; i<4; i+=2) printf("%d ", p[i]);
}
A 5 1
B 5 2
C 5 3
D 9 7
18 已知下列说明语句,则表达式**(q+2)的值是。

static int a[]={2,4,6,8}
static int *p[]={a,a+1,a+2,a+3};
int **q;
q=p;
A 2
B 4
C 6
D 8
19 有以下说明语句,对结构变量中成员age的正确引用是。

struct student
{ int age;
int sex;
}stud1,*p;
A p->age
B student.age
C *p.age
D stud1.student.age
#include<stdio.h>
void fun(char *fname, char *st)
{ FILE *myf; int i;
myf=fopen(fname, "w");
for(i=0; i<strlen(st); i++) fputc(st[i], myf);
fclose(myf);
}
main()
{ fun("test.txt", "new world");
fun("test.txt", "hello,");
}
A new worldhello,
B hello,rld
C new world
D hello,
二填空题(每题3分,共30分)
1 下面的程序运行时从键盘上输入9876543210<回车>,程序的输出结果是。

main()
{
int a;
float b,c;
scanf("%2d%2f%2f",&a,&b,&c);
printf("a=%d,b=%.1f,c=%.0f",a,b,c);
}
2 若输入字符串:abcde<回车>,则以下while循环体将执行次。

while((ch=getchar())=='e') printf("*");
3 下列程序的输出结果是。

main()
{ int s,i;
for(s=0,i=1;i<3;i++,s+=i);
printf("%d\n",s);
}
4 若int类型变量占两个字节,定义int x[10]={0,2,4};,则数组x在内存中所占的字节
数是。

5 以下程序的输出结果是。

main()
{
int b[3][3]={0,1,2,0,1,2,0,1,2}, i, j, t=0;
for(i=0; i<3; i++)
for(j=i; j<=i; j++) t=t+b[j][j];
printf("%d",t);
}
6 以下程序的输出结果是。

main()
{ char ch[]="abc",x[3][4]; int i;
for(i=0;i<3;i++) strcpy(x[i],ch);
for(i=0;i<3;i++) printf("%s",&x[i][i]);
printf("\n");
}
7 运行下面程序,其输出结果是。

#include <stdio.h>
int x,y;
one()
{ int a,b;
a=25,b=10;
x=a-b;y=a+b;
}
main()
{ int a=9,b=5;
x=a+b;y=a-b;
one();
printf("%d,%d\n",x,y):
}
8 以下程序的输出结果是。

void fun(int x, int y)
{ x=x+y; y=x-y; x=x-y;
printf("%d,%d",x,y);
}
main()
{ int x=2,y=3;
fun(x,y);
printf("%d,%d\n",x,y);
}
9 以下程序的输出结果是。

void print(int w)
{ int i;
if(w!=0)
{ print(w-1);
for(i=1;i<=w;i++)
printf("%d",w);
printf("\n");
}
}
main()
{ print(4); }
10 以下程序的输出结果是。

void swap(int *a, int *b)
{ int *t;
t=a; a=b; b=t;
}
main()
{ int i=2,j=5,*p=&i,*q=&j;
swap(p,q); printf("%d %d\n",*p,*q)
}
三程序填空题(每空3分,共30分)
1 以下程序的功能是从键盘输入若干个学生的成绩,统计最高成绩和最低成绩,当输入为
负数时,结束输入。

请填空使程序完整。

main()
{ float x,max,min;
scanf("%f",&x);
max=min= 【1】 ;
do{ if(x>max) max=x;
if(x<min) 【2】 ;
scanf("%f",&x);
} while( 【3】 );
printf("%f,%f",max,min);
}
2 以下程序的功能是:将t数组的内容连接到s数组内容的后面,使s数组保存连接后的
新字符串。

请填空使程序完整。

main()
{ static char s[30]="abcdefg",t[]="abcd"; int i=0,j=0;
while(s[i]!='\0') 【4】 ;
while(t[j]!='\0') { s[i+j]=t[j]; j++; }
【5】 ;
printf("%s\n",s);
}
3 下面函数的功能是统计子串substr在母串str中出现的次数,请填空使程序完整。

int count(char *str, char *substr)
{ int i,j,k,num=0;
for(i=0; 【6】 ;i++)
for( 【7】 ,k=0;substr[k]==str[j];k++,j++)
if(substr [ 【8】 ]==’\0’)
{ num++ ; break ; }
return (num);
}
4 以下程序的功能是:将任意十进制正整数转换成二进制数,请填空使程序完整。

#include"stdio.h"
int dtob(int n,int *p)
{ int m,i=0;
do
{ m=n%2;
【9】 ;
n=n/2;
i++;
}while(n!=0);
return i;
}
main()
{ int n,j,a[20];
printf("Input the umber: \n");
scanf("%d",&n);
j=dtob(n,a);
for(;j>0;j--)
printf("%d", 【10】 );
}
2010-2011学年第2学期C 语言期末考试试卷(A 卷)答题纸
班级学号 姓名 成绩
一 单项选择题(每题2分,共40分)

三 程序填空题(每空3分,共30分)
【1】x 【2】min=x 【3】x>=0 【4】i++
【5】s[i+j]= "\0" 【6】str[i] 【7】j=i 【8】k+1 【9】*(p+i)=m 【10】a[j-1]。

相关文档
最新文档