05年C语言六、单项选择(10分,每题1分)1.下列变量定义正确的是________A.int2ab;B.floatab;C.char$123D.int*per;2.若有说明inta=1,x=2,y=3;下列不是C语言合法表达式的是A.++9B.(float)(x)C.a++D.(float)x+y3.若有说明inti=1,j=2,k=3;表达式i&&j&&k的值为A.1B.2C.3D.44.若有说明inta,b;下面输入函数调用语句正确的是A.scanf(“%d%d”,a,b);B.scanf(“%d%d”,&a,&b);C.scanf(%d%d,a,b);D.scanf(%d%d,&a,&b);5.下列不是关系表达式的是A.35B.123C.!35D.1+236.下列对数组的定义正确的是A.inta(10);B.inta[10];C.inta{10};D.inta10;7.下列对C程序结构的说法不正确的是A.C程序是由一系列函数构成的B.C程序可以有多个main()函数C.C程序中函数名不可以和变量名相同D.C程序中可以定义函数8.若有说明int*p,a[10],j=3;下列指针变量赋值错误的是A.p=&j;B.p=&a[j];C.p=a;D.p=0x1000;9.若有说明inta=4;执行语句a1后,变量a的值A.1B.2C.3D.410.以只读的方式打开文本文件“test.txt”的正确方法是A.fopen(“test.txt”,”r”);B.fopen(“test.txt”,”rb”);C.fopen(“test”,”r”);D.fopen(“test.txt”);七、填空题(10分,每题1分)a)若有说明a=-1;printf(“%d,%x,%o\n”,a,a,a)的输出结果是______________。b)-32760在内存中的存储形式是__________(用十六进制表示)。c)7%4的值为________。d)写出C语言中的三种逻辑运算符____________。e)循环语句有for语句、__________和__________。f)continue语句的作用是_______________________。g)字符串“123\x45\19abc”的长度为____________。h)数组a[10]的第i个元素的指针是______________。i)若有结构体类型定义structSTU{inta;floatx;charc;};sizeof(structSTU)的值是________。j)FILE*fp;的作用是定义了一个_______________。八、写出下列程序的运行结果(10分,每题5分)1.main(){inti,s;for(i=10,s=0;i;s+=i,i--)printf(“result:%d\n”,s);}2.main(){voidfun();floatx,y;x=10;fun(x,&y);printf(“result:%.0f,%.0f\n”,x,y);}voidfun(x,y)floatx,*y;{*y=x*x;}九、编写程序(20分)1.编写程序求某1三位数的平方和(8分)。2.编写程序求数列1,1,2,3,5,8,13,......的前100项的和及平均值(12分)。06年C语言六、单项选择(15分,每题1分)1、C语言程序的基本单位是()A.程序行B.语句C.函数D.字符2、可用作C语言用户标识符的一组字符串是()A.voiddefineWORDB.a3_b3_123IFC.For–abcCaseD.2aDOsizeof3、设inta=12,则执行完语句a+=a-=a*a;后a的值是()A.552B.264C.144D.-2644、以下叙述正确的是()A.do-while语句构成的循环不能用其它语句构成的循环来代替。B.do-while语句构成的循环只能用break语句退出。C.用do-while语句构成的循环,在while后的表达式为非零时结束循环。D.用do-while语句构成的循环,在while后的表达式为零时结束循环。5、设有说明int(*ptr)[10]其中的标识符ptr是()A.10个指向整型变量的指针B.指向10个整型变量的函数指针C.一个指向具有10个整型元素的一维数组的指针D.具有10个指针元素的一维指针数组,每个元素都只能指向整型量6、有以下程序段typedefstructNODE{intnum;structNODE*next;}OLD;则以下叙述中正确的是()A.以上的说明形式非法B.NODE是一个结构体类型C.OLD是一个结构体类型D.OLD是一个结构体变量7、以下不能正确计算代数式值的C语言表达式是()A.1/3*sin(1/2)*sin(1/2)B.sin(0.5)*sin(0.5)/3C.pow(sin(0.5),2)/3D.1/3.0*pow(sin(1.0/2),2)8、C语言规定,程序中各函数之间()A.既允许直接递归调用也允许间接递归调用B.不允许直接递归调用也不允许间接递归调用C.允许直接递归调用不允许间接递归调用D.不允许直接递归调用允许间接递归调用9、在宏定义#definePI3.14159中,用宏名PI代替一个()A.单精度数B.双精度数C.常量D.字符串10、在C语言中,要求运算数必须是整型的运算符是()A.%B./C.D.!11、为表示关系x≥y≥z,应使用的C语言表达式是()A.(x=y)&&(y=z)B.(x=y)AND(y=z)C.(x=y=z)D.(x=y)&(y=z)12、有以下程序段intk=0,a=3,b=4,c=5;k=ac?c:k;执行该程序段后,k的值是()A.3B.2C.1D.013、若有定义char*s=”\\”Name\\Address\n”,则指针s所指字符串长度为()A.19B.15C.18D.说明不合法14、下述对C语言字符数组的描述中错误的是()A.字符数组可以存放字符串B.字符数组中的字符串可以整体输入输出C.可以在赋值语句中通过赋值运算符对字符数组整体赋值D.不可以用关系运算符对字符数组中的字符串进行比较15、设有如下的函数exam(floatx){printf(“\n%f”,x*x);}则函数的类型为()A.与参数x的类型相同B.是voidC.是intD.无法确定七、阅读下列程序,写出其运行结果(每小题5分,共25分)1.程序:main(){inti,j,x;for(i=0;i=4;i++){for(j=1;j=4-i;j++)printf(“”);for(j=0;j=2*i+1;j++)printf(“*”);printf(“\n”);}}2.程序:main(){intk=3,n=0;while(k0){switch(k){case1:n+=k;case2:case3:n+=k;default:break;}k--;}printf(“%d\n”,n);}3.程序:main(){inti,j,row,column,m;staticintarray[3][3]={{100,200,300},{28,72,-30},{-850,2,6}};m=array[0][0];for(i=0;i3;i++)for(j=0;j3;j++)if(array[i][j]m){m=array[i][j];row=i;column=j;}printf(“%d,%d,%d\n”,m,row,column);}4.程序:#includestdio.hintp(intk,inta[]){intm,i,c=0;for(m=2;m=k;m++)for(i=2;im;i++){if(!(m%i))break;if(i==m)a[c++]=m;}returnc;}#defineMAXN20main(){inti,m,s[MAXN];m=p(13,s);for(i=0;im;i++)printf(“%4d”,s[i]);printf(“\n”);}5.程序:intf(intn){if(n==0||n==1)return1;elsereturnf(n-2)+2*f(n-1);}main(){intn=5;printf(“%d”,f(n));}八、程序填空;按照要求完成下面的程序(函数)(每空2分,共10分)1.本函数用对分查找法,在以按字母次序从小到大排序的字符数组list中查找字符c,若c在数组中,函数返回字符c在数组中的下标,否则返回-1。intsearch(charlist[],charc,intlen){intlow,high,k;low=0;high=len-1;whiel((1)){k=(low+high)/2;if((2))returnk;elseif((3))high=k-1;elselow=k+1;}return-1;}2.函数mycmp(char*s,char*t)的功能是比较字符串s和t的大小,当s等于t时返回0,否则返回s和t的第一个不同字符的ASCII码的差值。mycmp(char*s,char*t){while(*s==*t){if((4))return0;++s;++t;}return((5))}07年C语言四、填空题(本题20分,每空2分)1.C语言中规定,整型常量可以用十进制、八进制和________进制形式来表示。2.结构化程序设计中的三种基本结构为:顺序结构、________和循环结构。3.在C语言中,对于负整数,在内存中是以________码形式进行存储。4.在C语言中,若被定义为int类型的变量,在内存中占用_______个字节的存储空间。5.已有定义:inta[5],*p;当执行了p=&a[3];语句时,是将指针变量p指向了a数组的第___个元素的地址。6.若某变量被定义为auto变量的存储单元,则将被分配在内存的___________存储区域。7.在下列给出的字符数组c,它在内存中所占用的字节数是__________。charc[]={“Clanguage”};8.在C语言中,能够实现循环结构的语句有:while语句、if/goto语句、do-while语句以及_________语句。9.若有a=3,b=5;则求ab的关系运算结果是____________。10.若有定义a[10];则允许数组a的下标最小可以是________。五、请写出下列程序的运行结果(本题10分,每小题2分)1.main(){intn=100;if(n100)printf(“***”);elseprintf(“###”);}2.main(){inta=2,b=-1,c=2;if(ab)if(b0)c=0;elsec+=1;printf(“c=%d\n”,c);}3.main(){chars[]=”student\0teacher”;printf(“%s\n”,s);}4.main(){inta=3,b=4;printf(“a=%d,b=%d\n”,++a,b++);}5.main(){staticinta[5],i;for(i=0;i5;i++)a[i]=a[i]+i;for(i=0;i5;i++)printf(“%d,”,a[i]);}六、单选题(本题10分,每小题2分)1.main(){intk=11;printf(“k=%d,k=%o,k=%x\n”,k,k,k);}A.k=11,k=12,k=11B.k=11,k=13,k=13C.k=11,k=013,k=0xbD.k=11,k=13,k=b2.main(){inty=10;while(y--);printf(“y=%d\n”,y);}A.y=10B.y=1C.y=随机值D.y=-13.main(){inta,b,*p1,*p2;p1=&a;p2=&b;*p1=100;*p2=200;c=*p1+*p2;printf(“%d\n”,c);}A.300B.100+2