热门搜索 :
考研考公
您的当前位置:首页正文

2012年秋试卷(A)

来源:伴沃教育
华南农业大学期末考试试卷( A卷)

2012学年第1学期

考试科目: 高级语言程序设计

考试类型:(闭卷) 考试时间: 90 分钟

考生须知:

1. 必须在答卷上正确填写班级、学号、姓名等内容。 2. 答案写在答卷上,写在试卷等其它地方不得分。 3. 试卷上出现的int类型变量均为4字节存贮。 4. 上机考试部分,考试时间与地点另行安排。

一、单项选择题(共10题,每题1分)

1. 下面对C语言运算符的优先级叙述正确的是( )。

A. !(非) > 算术运算符 > 关系运算符 > &&(与) > ||(或) > 赋值运算符 B. !(非) > 关系运算符 >算术运算符 > &&(与) > ||(或) > 赋值运算符 C. 算术运算符 >!(非) >关系运算符 > &&(与) > ||(或) > 赋值运算符 D. 算术运算符 > 关系运算符 > !(非) > &&(与) > ||(或) > 赋值运算符

2. float x=3.5, y=4.3 ;int a=8, 表达式y+a%3*(int)((x+y)/4+0.05)/3 的值为 A.4.3; B.5.3; C.6.3; D.7.3;

3. 若有代数式2x2y3bc(x,y,b,c是浮点数),则正确的C语言表达式是()

A.2/3*x^2*y/b*c B.2/3.0*x^2*y/b/c C.2*x*x*y/3*b*c

D.x*x/b/c*2/3*y

4. 在a=2,b=1,c=0;则执行c=b||a--;语句后,a和c的结果是()

A.0,1 B.2,1 C.1,0 D.2,0

5.下面程序段的输出结果是 。 int main( )

{ int a[ ]={1,2,3},s,b,*p; s=1; p=a; for(b=0;b<3;b++) s*=*(p+b); printf(“s=%d\\n”,s); } A.s=1 B.s=2 C.s=3 D.s=6

第1页 共7页

6.设整型变量a为5,使b不为2的表达式是 ()

A. b=a/2 B. b=6-(--a) C. b=a%2 D.b=a>3?2:1

7. 执行以下程序后,y的值是( ) int main ()

{ int y = 10;

do { y -

-;} while(-

- y); printf(\"%d\\n\

-); }

A. -1 B. 1 C. 8 D. 0

8.有如下程序

#include

int main()

{ int a[3][3]={{1,2},{3,4},{5,6}},i,j,s=0; for(i=1;i<3;i++)

for(j=0;j<=i;j++) s+=a[i][j]; printf(“%d”,s); }

该程序的输出结果是

A.18 B.19 C.20 D.21

9. 有以下程序段 int n,t= 0,s=0; scanf(\"%d\

do{ s=s+t; t=t-2; } while (t!=n);

为使此程序段不陷入死循环,从键盘输入的数据以下最合适的选项是( ) A.任意负奇数 B.任意偶数 C.任意整数 D.任意负偶数

10. 若变量已正确定义,要求程序段完成求5!的计算,不能..完成此操作的程序段是( A.i=1;p=1;do{p*=i; i++; } while(i<=5); B.for(i=1,p=1;i<=5;i++) p*=i; C.for(i=1;i<=5;i++) { p=1; p*=i;}

D.i=1;p=1;while(i<=5) {p*=i; i++;}

二、看程序写结果(共6题,每题4分)

1. #include \"stdio.h\"

第2页 共7页

) #define M 4 #define N 3 int main()

{ int a[M*N]={1, 2, 3, 4, 5, 6, 7, 8, 9,10,11,12}; int b[N*M], i, j;

for(i=0; ib[(i%M)*N+i/M]=a[i]; for(i=0; i请写出运行结果:

2. #include \"stdio.h\" main()

{ int k=5,n=0; while(k>0) { switch(k) { default : break; case 1 : case 2 : n+=k; case 3 : n+=k; } k- -; printf(\"%d\\n\ } }

请写出运行结果:

3. #include

int main() { int i,j,k;

for(i=1;i<4;i++) { for(j=1;j<4-i;j++) printf(\" \");

for(k=1;k<=2*i-1;k++) printf(\"%c\ printf(\"\\n\"); } }

请写出运行结果:

4. #include main( )

第3页 共7页

{

char arr[]=”ABCDE”; char *ptr;

for(ptr=arr;ptr请写出运行结果:

5. #include int main( ) { int a[5][5],i, j ; for( i=0;i<5;i++) { a[i][0] =1; a[i][i] =1; } for( i=2; i<5; i++ ) for(j=1; ja[i][j] =a[i-1][j-1] + a[i-1][j]; for(i=0; i<5; i++) {

for( j=0; j<=i; j++)

printf(“%5d”,a[i][j]); printf(“\\n”); } }

请写出运行结果:

6. 有下面结构体类型定义, struct node { char info; struct node *link; };

假设已存在如下链表, head 1 2 3 4 以head为实参调用如下函数, void func(struct node *head)

{ struct node *p = head, *p2=NULL; int i=0;

while( p!= NULL)

{ putchar(p->info); p = p-> link; } putchar('\\n'); p = head;

while( p!= NULL)

{ if (p-> link!= NULL) p->info=p-> link ->info; p = p-> link; } p = head;

while( p!= NULL)

{ putchar(p->info); p = p-> link; }

}

请写出运行结果:

第4页 共7页

三、看程序填空题(共8空,每空2分)

1.下面程序判断某一年是否闰年,请填空。(提示:闰年为该年能被400整除,或能被4整除且不能被100整除) #include \"stdio.h\" main() { int year,leap; scanf (\"%d\ if (year%4==0) if ( year%100= =0) if( year%400= =0) leap = 1; else leap = 0; else ______【1】 ; else leap = 0; if (leap) printf(\"%d is \ else printf(\"%d is not \ printf(\"a leap year.\"); }

2. 下面函数实现将字符串中ASCII形式表示的整数转变为数值形式,请填空。

int trans(char *s) { int ret=0; while(*s!= '\\0 ')

{ ______【2】 ; s++; } return ret; }

3. 下面程序是求数列:

前n项和的程序,结果保留四位小数。 #include \"stdio.h\" main() { int i, n, a=2, b=1; float c, sum=0; scanf(\"%d\

第5页 共7页

for(i=0; i{ ______【3】 ; sum = sum + c; a=a+b; b=a-b; }

printf(\"sum=%.4f\

} 4. 下面程序实现求出数组元素中的最大值,请填空。 #include \"stdio.h\" int main()

{ int c[10]={78,45,175,251,249,34,9,179,50,210}; int i,max; max=c[0]; for(i=1; i<10;i++) { 【4】 } printf(\"max = %d\\n\} 5. 在当前目录中存在文件名为\"data.txt\"的文本文件,现要求你使用fopen函数命令打开该文件,读出里面的所有字符,只将其中的数字字符按先后顺序显示在屏幕上,请填空。

(如data.txt内容如下) 13 cats and 22 bikes

(在屏幕上输出结果如下) 1322

程序如下,请填空, #include \"stdio.h\" main()

{ FILE *fp; char ch;

if((fp=fopen(\"data.txt\ return 0;

while( 【5】 ) { if ('0'<=ch && ch<='9') putchar(ch); }

fclose(fp); } 第6页 共7页

6.下面程序实现输出2到200之间(包括2、200)的所有素数,请填空(多行)。 ..#include #include

int isPrime(int n) { 【6】 }

int main() { int m;

for(m=2;m<=200;m++)

if(isPrime(m)) printf(\"%d\\n\}

7. 下面程序的功能是输出如下n*n(n<20,为正奇数)阶方阵。请填空。 1 1 1 1 1 1 2 2 2 1 1 2 3 2 1 1 2 2 2 1 1 1 1 1 1 (n=5)

#include “stdio.h” #include “math.h” main()

{ int a[20][20], n, i, j, m; 【7】 ; m=n/2; for(i=0; ifor(i=0; i{ for(j=0; j四、上机考试(共50分)

第7页 共7页

因篇幅问题不能全部显示,请点此查看更多更全内容

Top