广东工业大学试卷用纸,共14页,第1页学院:专业:学号:姓名:装订线广东工业大学考试试卷(B)课程名称:C程序设计试卷满分100分考试时间:2008年6月23日(第18周星期一)题号一二三四五六七八九十总分评卷得分评卷签名复核得分复核签名一、单选题(50分,每小题2分)1、以下不合法的用户标识符是(C)A:j2_KEYB:DoubleC:4dD:_8_2、表达式3.6-5/2+1.2+5%2的值是(D)A:4.3B:4.8C:3.3D:3.83、以下叙述错误的是(B)A:算法正确的程序最终一定会结束B:算法正确的程序可以有零个输出C:算法正确的程序可以有零个输入D:算法正确的程序对于相同的输入一定有相同的结果4、以下能正确定义且赋初值的语句是(A)A:intn1=n2=10;B:charc=32;C:floatf=f+1.1;D:doublex=12.3E2.5;5、以下叙述中错误的是(C)A:C语句必须以分号结束B:复合语句在语法上被看作是一条语句C:空语句出现在任何位置都不会影响程序的运行D:赋值表达式末尾加分号就构成了赋值语句6、有以下程序Main(){inta=666,b=888;Printf(“%d\n”,a,b);}程序运行后的输出结果是(B)A:错误信息B:666C:888D:666,888广东工业大学试卷用纸,共14页,第2页7、以下程序段的输出结果是(C)Inta=1234;Printf(“%2d\n”,a);A:12B:34C:1234D:提示出错、无结果8、若有以下程序(n所赋的是八进制数)Intm=32767,n=032767Printf(“%d,%o\n”,m,n);执行后输出结果是(A)A:32767,32767B:32767,032767C:32767,77777D:32767,0777779、有以下程序Main(){intm=0256,n=256;Printf(“%o%o\n”m,n);}程序运行后的结果是(C)A:02560400B:0256256C:256400D:40040010、若整型变量a、b、c、d中的值依次是:1、4、3、2.则条件表达式ab?a:cd?c:d的值是()A:abs(x-y)10B:x-y-10&&x-y10C:(x-y)-10||!(y-x)10D:(x-y)*(x-y)10011、有以下程序DMain(){intk=5;While(--k)print(“%d”,k-=3);Print(“\n”);}A:1B:2C:4D:死循环12、若要求从键盘读入含有空格字符的字符串,应使用函数(B)A:getc()B:gets()C:getchar()D:scanf()13、以下叙述正确的是()A:调用printf函数时,必须要有输出项B:使用putchar函数的时候,必须在之前包含头文件stdio..hC:在C语言中,整数可以以十二进制、八进制或十六进制的形式输出D:调用getchar函数读入字符时,可以从键盘上输入字符所对应的ASCII码14、以下数组定义中错误的是(B)A:intx[][3]={0};B:intx[2][3]={{1,2},{3,4},{5,6}};C:intx[][3]={{1,2,3},{4,5,6}};D:intx[2][3]={1,2,3,4,5,6};15、若有定义:intw[3][5];则以下不能正确表示该数组元素的表达式是(B)A:*(*w+3)B:*(w+1)[4]C:*(*(w+1))D:*(&w[0][0]+1)16、已有定义:intI,a[10],*p;,则合法的赋值语句是(D)A:p=100;B:p=a[5];C:p=a[2]+2;D:p=a+2;广东工业大学试卷用纸,共14页,第3页17、下述叙述中正确的是(D)A:每个C程序文件都必须要有一个main()函数B:在C程序中main()函数的位置是固定的C:C程序中所有函数之间都可以相互调用,与函数所在位置无关D:在C程序的函数中不能定义另一个函数(调用就可以)18、已定义以下函数Intfun(int*p){return*p;}Fun函数返回的值是()A:不确定的值B:一个函数C:形参中P中存放的值D:形参P的地址值19、有以下程序Main(){charp[]={‘a’,’b’,’c’},q[]=”abc”;Printf(“%d%d\n,sizeof(p),sizeof(q));};程序运行后的输出结果是(C)A:44B:33C:34D:4320、有以下程序Main(){chars[]=”159”,*p;p=s;Printf(“%c”,*p++);Printf(“%c”,*p++);}程序运行后的结果是(A)A:15B:16C:12D:5921、已知i,j,k为int型变量,若从键盘输入:1,2,3回车,使i的值为1,j的值为2,k的值为3,以下选项中正确的输入语句是(C)A:scanf(%2d,%2d,%2d,i,j,k);B:scanf(%d%d%d,&i,&j,&k);C:scanf(%d,%d,%d,&i,&j,&k);D:scanf(i=%d,j=%d,k=%d,&i,&j,&k);22、以下程序的输出结果是(B)main(){charst[20]=hello\0\t\\\;printf(%d%d\n,strlen(st),sizeof(st));}A:99;B:520;C:1320;D:2020广东工业大学试卷用纸,共14页,第4页23、设A为存放(短)整型的一维数组,如果A的第一个元素的地址为P,那么A中第i个元素的地址为(B)A:P+i*2B:P+(i-1)*2C:P+(i-1)D:P+i24、若已定义:inta[9],*p=a;并在以后的语句中未改变p的值,不能表示a[1]地址的表达式为(C)A:p+1B:a+1C:a++D:++p25、定义如下变量和数组:inti,x[3][3]={1,2,3,4,5,6,7,8,9};则下面语句for(i=0;i3;i++)printf(“%d”,x[i][2-i]);的输出结果是(C)A:159B:147C:357D:369二、判断题(每题1分,共10分)1.C语言源程序文件通过了编译、连接之后,生成一个后缀为.EXE的文件。(Y)2.在C程序中,函数既可以嵌套定义,也可以嵌套调用。(F)3.在C程序中,APH和aph代表不同的变量。(Y)4.表达式0195是一个八进制整数。(F)5.表达式_ya是不合法的C语言标识符。(F)6.C程序总是从main()函数的第一条语句开始执行的。(Y)7.a-=7等价于a=a-7.(Y)8.利用fclose函数关闭已打开的文件。(Y)9.数组名可以作为参数进行传递。(Y)10.执行printf(“%x”,12345);输出12345.(F)三、读下面的程序,回答问题(每题4分,共20分)1、以下程序运行后的输出结果是__25,21,37__________Main(){inta,b,c;a=25;b=025;(8进制)c=0x25;printf(“%d,%d,%d\n”,a,b,c);}2、以下程序运行后的结果是_4,3,5___________广东工业大学试卷用纸,共14页,第5页Main(){Inta=3,b=4,c=5,t=99;If(ba&&ac)t=a;a=c;c=t;If(ac&&bc)t=b;b=a;a=t;printf(“%d,%d,%d\n”,a,b,c);}3、下面程序运行后的结果是:__5,3___________Voidswap(int*a,int*b){int*t;t=a;a=b;b=t;}Main(){intx=3,y=5,*p=&x,*q=&y;Swap(p,q);Printf(“%d,%d\n”,*p,*q);}4、以下程序运行后的输出结果是:___123056009__________Main(){inti,j,a[3][3]={1,2,3,4,5,6,7,8,9};for(i=0;i3;i++)for(j=i+1;i3:i++)a[j][i]=0;for(i=0;i3;i++){for(j=0;j3;j++)printf(“%d“,a[i][j]);Printf(“\n”);}}5、以下程序的输出结果是:___30__________Main(){inta[3][3]={{1,2,9},{3,4,8},{5,6,7}},i,s=0;for(i=0;i3;i++)s+=a[i][i]+a[i][3-i-1];printf(“%d\n”,s);}四、程序填空(20分,每空2分)1、以下isprime函数的功能是判断形参a是否为素数,是素数,函数返回1,否则返回0.请填空。intisprime(inta){inti;广东工业大学试卷用纸,共14页,第6页For(i=2;ia/2;i++)If(a%i=0)___①return0__break__;________②return1____if(ia/2)printf(%disaprimenumber.\n,a);elseprintf(%disaprimenumber.\n,a)__;}2、以下程序中,函数fun的功能是x2-2x+6,主函数中将调用fun函数计算:Y1=(x+8)2-2(x+8)+6Y2=sin2(x)-2sin(x)+6请填空。#include“math.h”Doublefun(doublex){return(x*x-2*x+6);}Main(){doublex,y,l,y2;Printf(“enterx:”);Scanf(“%1f”,&x);Y1=fun(_____③_x+8_____);Y2=fun(______④_sin(x)____);Printf(“y1=%1f,y2=%1f\n”,y1,y2);}3、以下程序的功能是调用函数fun计算:m=1-2+3-4+……+9-10,并输出结果。请填空。Intfun(intn){intm=0,f=1,i;For(i=1;i=n;i++){m+=i*f;f=_____⑤-f_________;}Returnm;}Main(){printf(“m=%d\n”,______⑥fun(10)____);}4、设有定义:intn,*k=&n;以下语句将利用指针变量k读写变量n中的内容,请将语句补充完整。Scanf(“%d,”____⑦k__&n__);Printf(“%d\n,”____⑧*k_____);5、以下程序的功能是:输出100以内(不包含100)能被3整除且个位数为6的所有整数,请填空。Main(){inti,j;For(i=0;____⑨_i10____;i++){j=i*10+6;If(_____⑩j%3==0____)continue;Printf(“%d”,j);}}广东工业大学试卷用纸,共14页,第7页广东工业大学考试试卷(B)课程名称:C语言程序设计试卷满分100分考试时间:09年5月6日(第12周星期三)题号一二三四五六七八⑨十总分评卷得分评卷签名复核得分复核签名注:所有答案要写在答题纸上一、单项选择题(共40分,每题2分)1、一个可执行C程序的开始执行点是aA.程序中的第一个语句B.包含文件的第一个函数C.名为main的函数D.程序中的第一个函数2、下列数据类型中,不属于基本数据类型的是bA.intB.数组C.floatD.char3、不符合C语言语法法则的标识符是dA._fileB.NAMEC.x123D.case4.、对于C程序的函数,下列叙述中正确的是:aA.函数的定义不能嵌套,但函数调用可以嵌套B.函数的定义可以嵌套,但函数的调用不能嵌套C.函数的定义和调用均不能嵌套D.函数的定义和调用均可嵌套5.、关于字符串和字符的说法,不正确的是:aA.A与'A'是相同的B.字符可以参加算术运算C.可以有任何长度的字符串D.转义字符的长度为16、以下程序段输出的结果是