还剩5页未读,继续阅读
文本内容:
语言程序设计试题C学年第二学期―-二三四2008五/2009六七八九十总分一.选择题满分30分,每题2分
1.若a、b、c都定义为int类型且初值为0,则以下不正确的赋值语句是D A.a=b=c+8;B.a+=y+3;C.c++;D.a+b+c
2.已知int j,i=l;执行语句“j=i++”后,变量i的值是」—A.1B.2C.-1D.-
23.执行下面程序^include sldio.hvoid mainOint a=l,b=2,c=3;c=a+=a+2,a=b,b+3;printf w%d,%d,%dw,a,b,c;则输出结果是A A.2,2,4B.4,2,3C.5,5,3D.4,2,
54.若要求在if后一对圆括号中表示a不等于的关系,则能正确表示这一关系的表达式为」A.a0B.!a C.a=0D.a
5.for循环结束后,i的值是B.A.12B.11C.10D.
96.C语言中函数返回值的类型由_p_决定的
1.return语句中的表达式类型B.调用该函数的主调函数的类型C.调用函数时临时决定D.定义函数时所指定的函数类型
7.下列说法中正确的是B A在调用用户自定义函数时,必须对其进行声明B函数可以返回一个值,也可以什么值也不返回C说明函数时,必须明确参数的类型和返回值0在程序设计中空函数没有什么作用
8.若int i=10;执行下列程序后,变量i的正确结果是」switchi{case0:i+=l case10:i+=l;case11:i+=l;default:i+=l;A.10B.11C.12D.
139.下列语句中不正确的字符串赋值或初始化的是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.char str[]=strings”;
10.有如下程序#include stdio.hvoid main{int a=l,b=0,c=0;if abifb0c=0:else c++;printf$d\n,c;该程序的运行结果是D A.3B.2C.1D.
011.在函数调用,对参数传递的说法正确的是A A实参和形参各占一个独立的存储单元B实参和形参始终共用一个相同的存储单元C可以由用户指定实参和形参是否共用一个存储单元D可以由系统指定实参和形参是杳共用一个存储单元
12.以下正确的程序段是C A.char strl[]=12345”,str2[]=*abcdef*;strcpystrl,str2B.char str
[10],*st=*abcde*;strcatstr,st;C.char str
[10]=*,*st=*abcde*;strcatstr,st;D.char*stl=12345”,*st2=abcde”;strcatstl,st2;
13.若有定义int
①
[4]则标识符p BA.是一个指向整型变量的指针B.是一个指针数组名C.是一个指针,它指向一个含有四个整型元素的一维数组D.说明不合法工
414.以下程序的运行结果是C-----------------------------typedef union{-----------------------------1ong a[l];学号int b⑵;char c
[8];-----------------------------}TEST;姓名TEST m;mainprintf%d\nM,sizeof m;A.32B.16C.8D.
2415.设有以下结构体类型struct st{char name
[8];int num;float s
[4];}student
[50];并且结构体数组student中的元素都已有值,若要将这些元素写到硬盘文件file.txt中,以下不正确的形式是C A.fwrite student,sizeof structst,50,fp B.fwrite student,50*sizeof structst,1,fp C.fwrite student,25*sizeof structst,25,fp D.for i=0i50i++fwrite student+i,sizeof structst,1,fp
二、填空题满分20分,每空2分
1.每个C语言编写的程序必须有一个,并且只能有一个主函数
2.设x和y均为int型变量,且x=l,y=2,则表达式3+x/y的俏为
33.若有定义int a[]={2,4,6,8,10,12,*p=a;则*p+l的值是
44.设x=0xAB,若要通过x|y使x低4位置1,高4位不变,则y=OxOF
5.测试char型变量m的最高位数据是否为1的表达式是a0x
806.若x=2,y=-3则xy的结果是一
17.与二进制数101等值的十进制数为
508.定义int i=l执行语句whilei++5;后,i的值为
609.下面程序的运行结果为22222trinclude stdio.hvoid mainOint i=2,j=5,s;s=i;for;-j;s=s*10+i;printf%d”,s;
10.写出程序的执行结果i=10,j=ll main{int i=0,j=0while i10i++;while j++10;printf wi=%d,j=%d\n”,i,j
三、读程序写结果满分16分,每题4分
1.判断下面程序的运行结果#includcstdio.hvoid maininta=
0.b=l;int funina.int b;printf,,%d\n,funa,b;pnntf%d\n,funa.b;int funintin,int n{static s=l;s++;retums*m+n;2程序运行的结果为
32.以下程序的输出结果是3,2#include stdio.hstruct chainintx;int y;struct chain*p;}m
[2];void mainm
[0].x=l;m
[0].y=2;m[l].x=3;m[l].y=4;m
[0].p=m[l];m[l].p=m;printf*%d,%d\n,m
[0].p-x,m[l].p-y;
3.下面程序的运行结果是.7654321#include stdio.h#include string.hvoid funchar*w,int nchart,*sl,*s2;s1=w;s2=w+n-1;whilesls2t=*sl;*sl=*s2;*s2=t;sl++;s2一;void maincharp[]=1234567”;funp,strlenp;putsp;
4.下面程序的输出结果为4,2#include*stdio.h*struct ksintaint*b s
[4],*p;void mainint n=l,i;printf*\n*;fori=0;i4;i++s[i].a=ns[i].b=s[i].a;n=n+l;p=s
[0];p++;printf*%d,%d\n*,++p-a,p++-a;
四、程序设计满分34分
1.编写一个程序,判断某一年是否为闰年6分trinclude stdio.h void main{int year;printf Minput year=M;scanf u%dn,year;i fyear%4==0year%100!0year%400=0printf4%4dis aleap year\nw,year;elseprintf%4d isnot aleap year\nM,year;getsa;i=lengtha;printf/z\nThe lengthof stringis%d*»i;
2.用……公式求乃的近似值,直到最后一项的绝对值小于+int lengthchar*s char*p=s;while*p p++;returnp-s;为止4,请编程3实57现8分
4.将一个整数字符串转换为一个整数,如7234”转换为723410分#include malh.h^include stdio.h#include〈string.h intchnumchar*p;void mainvoidmain{char s
[6];int n;getss;if*s==-n=-chnums+l;int sjfloatn,t,pi;else n=chnums;t=l;pi=0;n=l.0;s=l;printf飞d\n”,n;whilefabstlE-6chnumchar*p intnum=0,k,len,jlen=strlenp;pi=pi+t;for;*p!=\0;p++n=n+2;k=*p-O;j=—len;whi lej—0k=k*10;num=num+k:returnnum;s=-s;t=s/n;pi=pi*4;printf t4pi=%
10.6f\n,pi;
3.编写程序,利用子函数实现计算字符串的长度(10分)^include stdio.h intlengthchar*s;void mainchara
[100];inti;printf Pleaseinput thestring:\n,z;。