:名 姓 线 : 号 学 订 : 业 专 装 :院 学广东工业大学考试试卷 ( A ) 课程名称: 试卷满分 分 考试时间: 年 月 日 (第 周 星期 ) 题 号 一 二 三 四 五 六 七 八 九 十 总分 评卷得分 评卷签名 复核得分 复核签名 一、选择题(每题2分,共20题,40分) 1. 若以下选项中的变量已正确定义,则正确的赋值语句是 C 。 A. x1=25.0%3 B. 1+2=x2 C. x3=0x12 D. x4=X1+X2=3; x 2. 变量x、y、z均为double类型且已正确赋值,不能正确表示数学式子 y × z 的C语言表达式为( A )。 A) x/y*z B) x*(1/(y*z)) C) x/y*1/z D) x/y/z 4. 在C程序的开发过程中,最终形成的可执行文件的扩展名是( C )。 A) .c B) .obj C) .EXE D) .BAK 4.下面的程序将输出:(A) main() { int a[5]={1,2,3}; int k,j; for(k=1;k<4;k++) a[k]++; for(j=0;j<5;j++) printf(\"%d \",a[j]); } A.1 3 4 1 0 B.2 3 4 1 0 C.2 3 4 0 0 D.1 3 4 0 0 5. a、b、c被定义为int型变量,若从键盘输入数据,正确的输入语句是( B )。 A) INPUT a,b,x; B) scanf(“%d%d%d”,&a,&b,&c); C) scanf(“%d%d%d”,a,b,c); D) read(“%d%d%d”,&a,&b,&c); 广东工业大学试卷用纸,共 7 页,第 1 页
6.下面程序将输出:(C) void add(int a) { a++; return; } main() { int k; k=3.4; add(k); printf(\"%d\ } A. 3.4 B. 4.4 C. 3 D. 4 7. 能将高级语言编写的源程序转换为目标程序的是 C 。 A .链接程序 B. 解释程序 C. 编译程序 D. 编辑程序 8. 若有说明int a[2][2],*p; 那么,下面正确的C赋值语句是:( C ) A) a=2; B) a[1]=2; C) a[1][ ]={1,2}; D) p=1000; 9. 下列描述不正确的是( C )。 A) 字符型数组中可能存放字符串。 A) 可以对字符型数组进行整体输入或输出。 B) 可以对整型数组进行整体输入或输出。 D) 不能在赋值语句中通过赋值运算符“=”对字符型数组进行整体赋值 10.若有说明int a[2][2];那么,下面正确的C赋值语句是:(D) A.a=2; B.a[1]=2; C.a[1]={1,2}; D.a[0][1]=a[1][0]; 11. 设有定义:int i,*pi=&i;,以下scanf语句中能正确为变量i读入数据的是 A 。 A.scanf(\"%d\B. scanf(\"%d\ C. scanf(\"%d\ D. scanf(\"%d\12.已知x=43,ch='A',y=0;则表达式(x>=y&&ch<'B'&&!y)的值是:(C) A.0 B.语法错 C.1 D.\"假\" 13. 有以下程序: main() { int x=0,y=5,z=3; while(z-->=0&&++x<6) y=y-1; printf(\"%d,%d,%d\\n\} 程序执行后的输出结果是 B 。 A. 3,2,-1 B. 4,1,-2 C. 5,1,-2 D. 5,-2,-5 广东工业大学试卷用纸,共 7 页,第 2 页
14. 在调用函数时,如果实参是简单变量,它与对应形参之间的数据传递是( C )。 A) 地址传递 B) 由实参传给形参,再由形参传给实参 C) 单向值传递 D) 传递方式由用户指定 15. 有以下程序: main() { int i,n=0; for(i=2;i<5;i++) { do { if(i%3) continue; n++; } while(!i); n++; } printf(\"n=%d\\n\} 程序执行后的输出结果是 D 。 A. n=5 B. n=2 C. n=3 D. n=4 16、有如下程序: #include void main() { int s,i; s=0; for(i=1;i<=9;i++) s=s+i; printf(“%d\\n”,s); } 该程序中的s=s+i; 语句执行的次数是( B ) A) 5 B) 9 C) 6 D)8 17 .以下程序运行后,输出结果是D A.13 B.51 C.11 int d=1; fun (int p) {int d=5; p=d; printf(\"%d\ } main() {int a=3; fun(a); d=a; printf(\"%d\\n\广东工业大学试卷用纸,共 7 页,第 3 页 D.53 18. 有以下程序段: int a[10]={10,9,8,7,6,5,4,3,2,1},*p=&a[3],b; b=p[5]; b中的值是C 。 A. 5 B. 1 C. 2 D. 6 19、函数调用时,若用数组名作实参,则传递给形参的是(B) A. 数组元素的个数 B. 数组的起始地址 C.数组第一个元素的值 D. 数组全部元素的值 20. 有如下程序: #include #define N 2 #define M N+1 #difine NUM 2*M+1 void main() { int i; for(i=1;i程序2 对一个整型数组赋值,然后统计其中素数的个数并输出结果。其中有若干处错误,在不增减语句的基础上请纠正相关的语法和算法错误。 #include 改: #include #include int yn(b); 改:int yn(int *b) { int k,flag; flag=0; 改:flag=1; for(k=2;k四、读程序写结果(每题10分,共2题) 程序1 #include #include void main() { char str[]={'I',0,'a','m',0,'a',0,'C',0,'P','r','o','g','r','a','m','m','e','r',0,0}; int len; char *p; p=str; while(1) { len=strlen(p); if(len==0)break; printf(\"%s \ p+=len+1; } printf(\"\\n\"); } 运行结果:I am a C Programmer 程序2 #include int f(int n) {static int s=1; while(n) s*=n--; return s; } main() {int i,j; i=f(3); j=f(5); printf(\"\\nThe output is:\\n\"); printf(\"i=%d,j=%d \\n\ 运行结果: The output is: i=6,j=720 广东工业大学试卷用纸,共 7 页,第 6 页五. 下面函数sort的功能是用选择排序法对数组array中n个无序整数按由小到大排序。请完成程序。(10分) void sort(int array[],int n) {int i,j,k,t; for(i=0;i广东工业大学试卷用纸,共 7 页,第 7 页