一、单项选择题(本大题共20小题,每小题1分,共20分)1.下列说法正确的是()A.C程序可以从任何一个函数开始执行B.main函数可以被其它函数调用C.一个C程序只能有一个main函数D.main函数中不能有形参2.下列属于正确的标示符是()A.?aB.a=2C.a.3D.a_33.下列数据中属于“字符串常量”的是A.ABCB.“ABC”C.‘abc’D.‘a’4.char型常量在内存中存放的是()A.ASCII代码B.BCD代码C.内码D.十进制代码5.设字符型变量a=3,b=6,计算表达式c=(a^b)2后c的二进制值是()A.00011100B.00000111C.00000001D.000101006.若有以下定义:chara;intb;floatc;doubled;则表达式a*b+d-c的值的类型为()A.floatB.intC.charD.double7.以下程序的输出结果是a=5,b=4,则输入数据的形式应该是()#include“stdio.h”main(){inta,b;scanf(%d,b=%d,&a,&b);printf(a=%d,b=%d,a,b);}A54B5,4C5b=4D5,b=48.C语言中,while和do…while循环的主要区别是()A.while的循环控制条件比do…while的循环控制条件严格B.do…while的循环体至少无条件执行一次C.do…while允许从外部转到循环体内D.do…while的循环体不能是复合语句9.循环语句for(x=0,y=0;(y!=123)||(x4);x++);的循环执行()A.无限次B.不确定次数C.4次D.3次10.在C语言中,设有数组定义chararray[]=China;则array所占的空间为()A.4个字节B.5个字节C.6个字节D.7个字节11.若变量已正确说明为int类型,要通过语句scanf(“%d%d%d”,&a,&b,&c);给a,b,c分别赋值3,5,8,不正确的输入形式是()A.3enterB.3,5,8enter5enter8enterC.3enterD.35enter58enter812.char*p=happynewyear;char*q=p;intk;for(k=1;k8;k++){putchar(*q);q++;}上面C程序段的输出结果是()A.happynewyearB.happynewC.happynD.happyE.appyn13.设double*p[5];则A.p是指向double型变量的指针B.p是double型数组C.p是指针数组,其元素是指向double型变量的指针D.p是数组指针,指向double型数组14.两个指针变量不可以()A.相加B比较C相减D指向同一地址15.对C语言函数描述正确的是A.在C语言中调用函数时,只能把实参的值传给形参,形参的值不能传回给实参B.C函数既可以嵌套定义又可以递归调用C.函数必须有返回值,否则不能使用函数D.函数必须有返回值,返回值类型不定16.设有如下定义,则对data中的a成员的正确引用是()structtest{inta;floatb;}data,*p=&data;A.(*p).data.aB.(*p).aC.p-data.aD.p.data.a17.有如下程序(提示:注意宏替换的规则)的#defineN2的#defineMN+1的#defineNUM2*M+1的#main()的{inti;的for(i=1;i=NUM;i++)printf(“%d\n”,i);的}的该程序中的for循环执行的次数是()A.5B.6C.7D.818.若有以下定义,则printf(“%d\n”,sizeof(them));的输出是()typedefunion{longx[2];inty[4];charz[8];}MYTYPE;MYTYPEthem;A.32B.16C.8D.2419.下列语句中,将c定义为文件型指针的是()A.FILEc;B.FILE*c;C.filec;D.file*c;20.下列关于C语言数据文件的叙述中正确的是的51TeA.文件由ASCII码字符序列组成,C语言只能读写文本文件的51stB.文件由二进制数据序列组成,C语言只能读写二进制文件的51TeC.文件由记录序列组成,可按数据存放形式分为二进制文件和文本文件51TtD.文件由数据流形式组成,可按数据的存放形式分为二进制文件和文本文件二、填空题(本大题共10小题,每小题2分,共20分)1.在定义变量的同时给变量赋予初值就称为___________________________________2.下面程序段的输出结果是___________________________________________inta=28;a=a&21;printf(“%d%o\n”,a,a);3.能正确表示0≤a≤10的逻辑表达式是_________________________________4.若有定义inta[3],*p;则使p指向数组a的赋值语句是_______________________5.strcmp函数的功能是________________________________________6.写出数学式aacbbx242的C语言表达式________________________________7.将以下程序写成三目运算符的表达式是____________________________________if(ab)max=a;elsemax=b8.设有定义如下:#defineF(N)2*N,则表达式F(2+3)的值是_____________________.9.在C语言中,指针运算符为___________________,取地址运算符________________。10.在C语言中,参数传递的两种形式是___________和___________三、程序分析题(本大题共5小题,每小题5分,共25分)1.若运行时输入:2回车,则以下程序的运行结果是__________________________#includestdio.hmain(){charclass;printf(“Enter1for1stclasspostor2for2ndpost:”);scanf(“%c”,&class);if(class==’1’)printf(“1stclasspostageis19p”);elseprintf(“2ndclasspostageis14p”);}2.以下程序的执行结果是_____________________________________________#includestdio.hvoidmain(){intnum=0;while(num=2){num++;printf(%d,num);}}3.以下程序的输出结果是_______________________________________#includestdio.hmain(){intk=4,m=1,p;p=func(k,m);printf(%d,p);}func(inta,intb){intm=0,i=2;i=i+m+1;m=i+a+b;returnm;}4.以下程序的执行结果是()。#includestdio.hmain(){inta[]={5,6,7,8},i;func(a);for(i=0;i4;i++)printf(%d,a[i]);}func(int*b){intj;for(j=0;j4;j++)b[j]=2*j;}5.设有程序myapp.c,代码如下:#includestdio.hmain(intargc,char*argv[]){while(--argc0){printf(“%s”,argv[argc]);printf(“\t”);}}编译后形成myapp.exe,如果输入如下的命令:myappaaa333bbb444则输出结果是:______________________________________________________四、程序填充题(本大题共5小题,每小题4分。共20分)1、根据以下嵌套if语句所给条件,填写switch语句,使它完成相同的功能。(假设mark的取值在1-100之间)if语句如下:if(mark60)k=1;elseif(mark70)k=2;elseif(mark80)k=3;elseif(mark90)k=4;elseif(mark100)k=5;请填写下面经转换后的switch语句中的括号中的内容。switch(){__________:k=1;break;case6:k=2;break;case7:k=3;break;case8:k=4;break;___________:k=5;break;}2.将八个数输入到数组中,找出其中最大数和最小数并输出。main(){intI,max,min,a[_______];for(I=0;I8;I++)scanf(“%d”,&a[I]);max=a[0];min=a[0];for(I=1;I8;I++){if(a[I]max)max=__________________________;if(a[I]min)______________________________;}printf(“max=%d,min=%d\n”,____________________________);}3.下列程序的功能是输入三角形的三条边a,b,c。求三角形的面积,请填空:#includemath.hmain(){floata,b,c,s,area;scanf(“”,&a,&b,&c);/*填空*/s=1.0/2*(a+b+c);area=(s*(s-a)*(s-b)*(s-c));/*填空*/printf(“a=%7.2f,b=%7.2fc=%7.2f,s=%7.2f\n”,a,b,c,s);printf(“area=%7.2f\n”,area);}4.以下程序的功能是求π的近似值,请填空:(提示:71513114)#includestdio.hmain(){ints;____________________;/*填空*/t=1;pi=0;n=1.0;s=1;while(fabs(t)1e-6){__________________;/*填空*/n=n+2;s=-s;t=s/n;}pi=pi*4;printf(“pi=%10.6f\n”,pi);}5.下列程序的功能是从一个文件中读出三个结构体保存在一结构体数组中,请填空:#includestdio.hstructTest{chara[20];};main(){__________________;/*填空*/structTestx[3];inti;fp=fopen(“d:\\cwz\\abc.bat”,”rb”);for(i=0;i3;i++)__________________;/*填空*/fclose(fp);}五、程序设计题(本大题共2小题,第一题7分,第二题8分,共15分)1.编写程序,输入华氏温度(F),按下列公式计算并输出对应的摄氏温度(C).C=5(F-32)/92.编写程序用结构体存放下表中的数据,然后计算并输出每人的姓名和实发工资,实发工资=基本工资+浮动工资-支出。姓名基本工资浮动工资支出ZhaoQianSun240.0360.0560.0400.0120.00.075.050.080.0结构体定义如下:structworker{charname[10];floatjbgz;floatfdgz;floatzhichu};参考答案:一、单项选择题1.C2.D3.B4.A5.D6.D7.D8.B9.A10.C11.B12.C13.C14.A15