往届c试题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2011学年春季学期
一、单选题(每题2分,共20分)
1.在C语言中,变量所分配的内存空间大小______。
A)均为一个字节B)由用户定义C)由变量的类型决定D)是任意的
2.若a是数值类型,则逻辑表达式(a==1)||(a!=1)的值是______。
A)1 B)0 C)2 D)不知道a的值,不能确定
3.下列运算符中优先级最高的是______。
A)!= B)%= C)-> D) ++
4.下面的for语句________。
for(x=0,y=10;(y>0)&&(x<4);x++,y-- );
A)循环执行4次B)循环执行3次C)是无限循环D)循环次数不定
5.以下选项中与if(a==1)a=b;else a++; 语句功能不同的switch语句是______。
A)switch(a) B)switch(a==1)
{case 1:a=b;break; {case 0:a=b;break;
Default:a++; case 1:a++;
} }
C)switch(a) D)switch(a==1)
{ default:a++; break; {case 1:a=b;break;
case 1:a=b; case 0:a++;
} }
6.下面程序的输出结果是_______。
void main()
{int a=10,b=20,c=30;
if(a>b) a=b;b=c;c=a;
printf("%d,%d,%d\n",a,b,c);
}
A)10,20,30 B)10,30,20 C) 10,30,10 D) 30,20,10
7.有定义:char *p[20]; 则p是______。
A)指针数组名B)指针变量名C)字符变量名D)函数名
8.以下程序运行时输出结果是_______。
#include
void fun(char *c,int d)
{ *c=*c+1;d++;
printf("%c,%c,",*c,d);
}
void main()
{ char b='a',a='A';
fun(&b,a); printf("%c,%c\n",b,a);
}
A)b,B,b,A B)b,B,B,A C) b,B,b,B D) b,B,a,A
9.在以下定义和语句,能给w中year成员赋值1990的语句是_______。
struct workers
{int num;char name[20];char sex;
struct
{int day,manth,year;}s;
};
struct workers w,*pw; pw=&w;
A)*pw.s.year=1990 B)w.year=1990
C) pw->year=1990 D) w.s.year=1990
10.有定义:struct
{ long int i;char c;float a;
}test;
则sizeof(test)的值是______。
A)4 B)9 C)13 D)17
二、填空题(每空2分,共20分)
1.表达式a+=a-=a=9的值是______【1】_______。
2.写出C语言中所有的逻辑运算符______【2】______。
3.C语言中break语句的功能是_______【3】_______。
4.下列循环结构的循环体,在程序运行时,将被执行______【4】______次。
for(a=0,p=2;p;a++) p=a;
5.如下程序段执行后,a的值为______【5】_______
int *p,a=10,b=15;
p=&a; a=*p+b;
中国海洋大学2011学年春季学期期末考试试卷
6.函数fun的功能是:在x所指向的有n个数据的一维数组中找出最小值并作为函数值返回。请完善程序。int fun(int *x,int n)
{int k=0,i;
for(i=0;i if(x[i] 7.以下函数的功能是:求x的y次方,请填空。 #include double fun( double x,int y) { int i; double z; for(i=1,z=1;i<=fabs(y);i++) z=______【7】_______; return y>=0?z:1/z; } 8.下面程序是从键盘输入一行字符,统计其中单词个数,单词之间用空格分隔。请完善程序。 void main() { char s[80]; int i,num=0; gets(s); if(______【8】_______) num++; for(i=1;s[i]!='\0';i++) if(s[i]!=' '&&s[i-1]==' ')num++; printf("There are %d words.\n",num); } 9.以下程序的功能是:输出100以内(不含100)能被3整除且个位数为6的所有整数,请完善程序。void main() {int i,j; for(i=0; ______【9】_______;i++) { j=i*10+6; if(______【10】_______) printf("%5d",j); } } 三、读程序写结果(每题2分,共20分) 1. #define SUB(a) (a)-(a) void main() { int a=2,b=3,c=5,d; d=SUB(a+b)*c; printf("%d\n",d); } 2. #include int fun() { static int x=2; x*=2;return x; } void main() { int i,s=2; for(i=1;i<=2;i++) { s=fun(); printf("%d ",s); } } 3. void main() { if( 2*2 == 5<2*2 == 4) printf("Yes\n"); else printf("No\n"); } 4.void main() {char c[]="4+"; int s; switch(c[0]) {case '5':s=100;break; case '4':switch(c[1]) { case '+':s=90;break; case '-':s=70;break; default:s=80; } case '3':s=60;break; case '2':case '1':s=50; } printf("s=%d\n",s); } 中国海洋大学2011学年春季学期期末考试试卷 计算机基础部《C程序设计》课程试题(A卷)共8 页第 5 页 5. void main() { char a[]="YouAndMe",*p=a; p+=3; puts(p);