C语言考试试题三套.docx
- 文档编号:7212047
- 上传时间:2023-01-21
- 格式:DOCX
- 页数:24
- 大小:27.67KB
C语言考试试题三套.docx
《C语言考试试题三套.docx》由会员分享,可在线阅读,更多相关《C语言考试试题三套.docx(24页珍藏版)》请在冰豆网上搜索。
C语言考试试题三套
C语言辅导试题一
一、单项选择题(每小题2分,共20分)
1.C语言程序的三种基本结构是顺序结构、选择结构和______结构。
A、循环B、递归C、转移D、嵌套
2.若x是单精度实型变量,表达式(x=10/4)的值是_____。
A、2.5B、2.0C、3D、2
3.表达式!
x等价于_____。
A、x==0B、x==1C、x!
=0D、x!
=1
4.若变量已正确定义且k的值是4,计算表达式(j=k--)后,_____。
A、j=3,k=3B、j=3,k=4C、j=4,k=4D、j=4,k=3
5.算术运算符、赋值运算符和关系运算符的运算优先级按从高到低的顺序依次为_____。
A、算术运算、赋值运算、关系运算B、关系运算、赋值运算、算术运算
C、算术运算、关系运算、赋值运算D、关系运算、算术运算、赋值运算
6.C语言中,形参的缺省的存储类说明是______。
A、autoB、staticC、registerD、extern
7.下列语句定义pf为指向float类型变量f的指针,_____是正确的。
A、floatf,*pf=f;B、floatf,*pf=&f;C、float*pf=&f,f;D、floatf,pf=f;
8.表达式sizeof(“key”)的值是______。
A、1B、2C、3D、4
9.将程序prog.c编译后运行:
prog–nlahelloworld则*(*(argv+2))是______。
A、’p’B、‘-‘C、‘h’D、‘w’
10.若a是整型变量,表达式~(a^~a)等价于______。
A、~aB、1C、0D、2
二、填空题(每小题3分,共24分)
1.写出语句printf("%d,%o,%x",0x12,12,012);的输出结果。
2.写出下列程序段的输出结果。
#defineF(x)x-2
#defineD(x)x*F(x)
printf("%d,%d",D(3),D(D(3)));
3.写出下列程序段的输出结果。
intk;char*s=“ABC”;
for(k=10;k!
=0;k--);
printf("%d",k);
while(*s++)putchar(*s);
4.写出下列程序的输出结果。
voidfun(intk)
{staticinta;
printf(”%d,”,a);
a+=k;
}
main()
{intk;
for(k=1;k<=3;k++)
fun(k);
}
5.写出下列程序的输出结果。
main()
{structst{
intx,y;
}a[4]={{10,20},{30,40},{50,60},{70,80}};
structst*p=a;
printf("%d,",p++->x);
printf("%d,",++p->y);
printf("%d\n",(a+3)->x);
}
6.写出下列程序的输出结果。
#include"stdio.h"
voidmain()
{intk,j,m,n,a[6][6],b[6];
m=3,n=2;
for(k=0;k for(j=0;j a[k][j]=k*n+j+1; for(k=0;k b[k]=0; for(j=0;j b[k]+=a[k][j]; } for(k=0;k printf("%d,",b[k]); } 7.写出下列程序的输出结果。 #include longfib(intg) {switch(g){ case0: return(0); case1: case2: return (2); } printf("g=%d,",g); return(fib(g-1)+fib(g-2)); } main() {longk; k=fib(4); printf("k=%ld\n",k); } 8.用typedef定义一个长度为10的整型数组NUM。 三、程序阅读题(每题5分,共20分) 1.写出下列程序的输出结果。 #include intx,y,z; voidp(int*x,inty) {--*x; y++; z=*x+y; printf("%d,%d,",*x,y); } voidmain() {x=5;y=2;z=0; p(&x,y); printf("%d,%d,%d--",x,y,z); p(&y,x); printf("%d,%d,%d\n",x,y,z); } 2.写出下列程序的输出结果,并指出该程序的功能。 #include voidmain() {intx,k; x=14; for(k=0;x! =0;x&=x-1) ++k; printf("%d\n",k); } 3.写出下列程序的输出结果。 #include voidmain() { intv[]={6,3,4,1,2};intn=5; intgap,j,k,temp; for(gap=n/2;gap>1;gap/=2) for(j=gap;j for(k=j-gap;k>=0&&v[k]>v[k+gap];k-=gap){ temp=v[k]; v[k]=v[k+gap]; v[k+gap]=temp; } for(k=0;k<5;k++)printf("%d,",v[k]); } 4.输入123450后,写出下列程序的输出结果。 #defineLENsizeof(structline) #defineNULL0 structline{ intnum; structline*next; } main() {structline*p1,*p2,*head; intj,k=0; p1=p2=head=(structline*)malloc(LEN); scanf("%d",&p1->num); while(p1->num! =0){ p1=(structline*)malloc(LEN); scanf("%d",&p1->num); if(p1->num==0)p2->next=NULL; else{p2->next=p1; p2=p1; } k++; } p2->next=head;p1=head->next;p1=p1->next; for(j=1;j<=k;j++){ printf("-->%d",p1->num); p1=p1->next; } } 四、程序填空题(每空2分,共20分) 1.输入10个点的坐标(设坐标为整数值),输出距原点最远的点(设唯一)的坐标及该点距原点的距离. #include voidmain() { struct{ intx,y; floatlength; }point[10]; intk,sub=0; for(k=0;k<10;k++){ scanf("%d%d",&point[k].x,&point[k].y); point[k].length= (1) } for(k=1;k<10;k++) if( (2))(3) printf("(%d,%d)%f\n",point[sub].x,point[sub].y,point[sub].length); } 2.将输入的n个字符串连接成1个字符串,然后输出该字符串. #include #include voidmain() { charstr[10][20],string[200]; intk,n; scanf("%d",&n); for(k=0;k gets(str[k]); (4) for(k=1;k (5) puts(string); } 3.函数xtoi的功能是将放在字符串中的十六进制数(可以出现’0’~’9’、’a’~’f)转换成十进制整数。 例如: 调用xtoi("1f")将返回31。 xtoi((6)) {intk,d=0; for(k=0;s[k]==’’||s[k]==’\t’;k++); while(s[k]>=’0’&&s[k]<=’9’||s[k]>=’a’&&s[k]<=’f’){ if(s[k]>='0'&&s[k]<='9') (7) if(s[k]>='a'&&s[k]<='f') (8) k++; } returnd; } 4.函数month_day(year,yearday,&month,&day)的功能是将给定的某年第几天转换为相应的月和日。 例如: 调用month_day(1988,60,&m,&d)后,m的值是2,d的值是29(即1988年的第60天是1988年2月29日)。 判别闰年的条件: 能被4整除但不能被100整除或能被400整除。 voidmonth_day(intyear,intyearday,int*pmonth,int*pday) {staticintday_tab[2][13]={ {0,31,28,31,30,31,30,31,31,30,31,30,31}, {0,31,29,31,30,31,30,31,31,30,31,30,31}}; intk,leap; leap=year%4==0&&year%100! =0||year%400==0; for(k=1;yearday>day_tab[leap][k];k++) (9) *pmonth=(10) *pday=yearday; } 五、编程题(共16分) 1.[程序说明](5分) 请编写函数sum_fact(number),返回number的因子之和。 (能整除number的数就是它的因子,number定义为int) 例如sum_fact(6)=12(因为1,2,3,6是6的因子) 2.[程序说明](11分) 文本文件input.txt中存放了一批整数,将其中每个数的因子之和顺序写入文件output.txt。 (必须调用第1小题中定义的函数sum_fact(number)计算number的因子之和) 例: 若文件input.txt中存放了1,2,6,则每个数的因子之和分别是1312,它们被写入文件output.txt。 C语言辅导试题二 一、单项选择题(每小题2分,共30分) 1. C语言程序中可以对程序进行注释,注释部分必须用符号_____括起来。 A、‘{‘和’}’B、‘[‘和’]’C、“/*”和”*/”D、“*/”和”/*” 2. 下列运算符中,优先级最低的是_____。 A、*B、! =C、+D、= 3. 若变量已正确定义,表达式(j=3,j++)的值是_____。 A、3B、4C、5D、0 4. 已知字符‘a’的ASCII码为97,执行下列语句的输出是_____。 printf("%d,%c",’b’,’b’+1); A、98,bB、语句不合法C、98,99D、98,c 5. 表达式strcmp(“box”,“boss”)的值是一个_______。 A、正数B、负数C、0D、不确定的数 6. 数组定义为inta[3][2]={1,2,3,4,5,6},数组元素_____的值为6。 A、a[3][2]B、a[2][1]C、a[1][2]D、a[2][3] 7. 要调用数学函数时,在#include命令行中应包含_____。 A、”stdio.h”B、”string.h”C、”math.h”D、”ctype.h” 8. 判断i和j至少有一个值为非0的表达式是_____。 A、i! =0&&j! =0B、i*j! =0[yh1]C、! (i==0||j==0)D、i&&j 9. 若a是基本整型变量,c是单精度实型变量,输入语句______是错误的。 A、scanf(”%d,%f”,&a,&c);B、scanf(”d=%d,c=%f”,&a,&c); C、scanf(”%d%f”,&a,&c);D、scanf(”%d%f”,a,c); 10. 若变量已正确定义并且指针p已经指向某个变量x,则(*p)++相当于_____。 A、p++B、x++C、*(p++)D、&x++ 11. 若p1、p2都是整型指针,p1已经指向变量x,要使p2也指向x,_____是正确的。 A、p2=p1;B、p2=**p1;C、p2=&p1;D、p2=*p1; 12. 下列程序段的输出是_____。 intc[]={1,3,5}; int*k=c+1; printf("%d",*++k); A、3B、5C、4D、6 13. 不正确的赋值或赋初值的方式是______。 A、charstr[]="string"; B、charstr[7]={'s','t','r','i','n','g'}; C、charstr[10];str="string"; D、charstr[7]={'s','t','r','i','n','g',’\0’}; 14. 对于以下结构定义,++p->str中的++加在_____。 struct{ intlen; char*str; }*p; A、指针str上B、指针p上C、str指的内容上D、以上均不是 15. 对于如下说明,语法和语义都正确的赋值是_____。 intc,*s,a[]={1,3,5}; A、c=*s;B、s[0]=a[0];C、s=&a[1];D、c=a; 二、填空题(每小题2分,共20分) 1. 写出下列程序段的输出结果。 floatx1,x2; x1=3/2; x2=x1/2; printf("%d,%.1f",(int)x1,x2); 2. 表达式(7<<1>>2^2)的值是_______。 3. 写出下列程序段的输出结果。 #defineA10
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 考试 试题