2013年长沙理工大学C语言考试试卷A

更新时间:2024-04-16 18:19:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

………………………………………………………………………………………………………………

课程名称(含档次) C语言程序设计 课程代号 D081200065

专 业 非计算机专业 层次(本部、城南) 本部 考试方式(开、闭卷) 闭卷

一. 选择题(本题总分50分,每小题2分) 1. 下面说法正确的是(C)

A)C程序由符号构成 C)C程序由函数构成

B)C程序由C的指令构成 D)C程序由C语句构成

2. 在C语言中,如果下面的变量都是int型,则输出的结果是(D)

sum=pad=5; pad=sum++; pad++; ++pad;

printf(“%d\\n”,pad); A) 4

B) 5

C)6

D) 7

3. 表达式3.6-5/2+1.2+5%2的值是( D)

A)4.3

B) 4.8 C) 3.3 D)3.8

4. 以下选项中不是C语句的是(C)

A) {int i=5; i++;printf(“%d\\n”,i);} C) a=5, c=10

B) ;

D) {;}

5. 下述程序的输出结果是(B)

main( ) { int x=023; printf(“%d”, --x); }

第 1 页 共 12 页 C语言程序设计A卷

A) 17 C) 23

B) 18 D) 24

6. 有如下定义: float x; unsigned y; 则以下合法的输入语句是(B)

A) scanf(“%5.2f%d”, &x, &y); B) scanf(“%f%3o”, &x, &y); C) scanf(“%f%n”, &x, &y);

D) scanf(“%f%f”, &x, &y);

7. 判断char型变量ch是否为小写字母的正确表达式是(D)

A) ‘a’<=ch<=’z’

B) (ch>=a)&&(ch<=z)

D) (ch>=’a’)&&(ch<=’z’)

C) (‘a’>=ch)||(‘z’<=ch) 8. 以下程序的输出结果是(B)

main( )

{ int x=2, y=-1, z=2; if(x

B) 2 D) 0

9. 以下程序的运行结果是(D)

main( )

{ int k=4, a=3, b=2, c=1;

printf(“\\n%d\\n”, k

第 2 页 共 12 页 C语言程序设计A卷

A) 4 C) 2

B) 3 D) 1

10. 在C语言中,下述正确的是(D)

A) do-while语句构成的循环不能用其他语句构成的循环来代替。 B) do-while语句构成的循环只能用break语句退出。

C) do-while语句构成的循环,在while后的表达式为非0时结束循环。 D) do-while语句构成的循环,在while后的表达式为0时结束循环。 11. 对于下述while循环语句,说法正确的是(B)

int i=1; while(i++) printf(“***”);

A) 判断循环结束的条件非法 C) 是有限循环

B) 是无限循环 D) 只循环一次

12. 下面程序的输出结果(B)

#include main( ) { int a,b;

for(a=1,b=1;a<=100;a++) { if (b>=20) break; if(b%3= =1) { b+=3; continue;} b-=5; }

第 3 页 共 12 页 C语言程序设计A卷

printf(“%d\\n”,a); } A) 7

B) 8 C) 9

D) 10

13. 以下不能正确进行字符串赋初值的语句是(C)

A) char str[5]=“good!”; B) char str[ ]=“good!”; C) char *str=“good!”;

D) char str[5]={‘g’,’o’,’o’,’d’,’\\0’}; 14. 给出以下定义:

char x[]=“abcdefg”; char y[]={'a','b','c','d','e','f','g'}; 则以下叙述正确的是(C)

A) 数组x和数组y等价 B) 数组x和数组y长度相等 C) 数组x的长度大于数组y的长度 D) 数组x的长度小于数组y的长度 15. 下面对函数嵌套的叙述中,正确的是(B)

A) 函数定义可以嵌套,但函数调用不能嵌套 B) 函数定义不可以嵌套,但函数调用可以嵌套 C) 函数定义和函数调用均不能嵌套 D) 函数定义和函数调用均可以嵌套

16. 调用一个函数,此函数中没有return语句,下列说法正确的是:该函数(A)

A) 返回一个不确定的值

第 4 页 共 12 页 C语言程序设计A卷

B) 返回若干个系统默认值

C) 能返回一个用户所希望的函数值 D) 没有返回值

17. 以下有关宏替换的叙述不正确的是(A)

A) 宏替换不占用运行时间 B) 宏名无类型

C) 宏替换只是字符替换 D) 宏名必须用大写字母表示

18. 若有语句int *point,a=4; 和point=&a; 下面均代表地址的一组选项是(C)

A) a, point, *&a

B) &*a, &a, *point D) *&point, *point, &a

C) &a,&*point, point

19. 设以下程序的输出结果是( C )。

#define SQR(x) x*x main()

{ int a=16,k=2,m=1; a=(k+a)/SQR(k+m); printf(“%d\\n”,a); }

A)16 B)9 C)12 D)1 20. 下面程序段运行的结果是(C)

char a[ ]= “language”,*p; p=a;

while(*p!='u')

第 5 页 共 12 页 C语言程序设计A卷

{ }

A) LANGUAGE

21. 执行下面的程序段后,变量k中的值为(D)

int k=3,s[2]; s[0]=k;k=s[1]*10; A)30

B) 20

C) 10

D)不定值

B) language C) LANG

D) langUAGE

printf(“%c”,*p-32); p++;

22. 以下能正确定义二维数组的是( C )。

A)int a[][3];

B)int a[][3]={ }; D)int a[2][3]={{1},{2},{3}};

C)int a[][3]={2*3}; 23. 有以下程序

#include main()

{char *p=“abcde\\0fghjik\\0”; printf(“%d\\n”,strlen(p)); }

程序运行后的输出结果是(D) A) 15

B) 12 C) 6

D) 5

24.下列程序的输出结果是(C)

第 6 页 共 12 页 C语言程序设计A卷

#include struct abc { int a,b,c;}; main()

{ struct abc s[2]={{1,2,3},{4,5,6}}; int t;

t=s[0].a+s[1].b%s[0].c; printf(“%d \\n”,t); } A) 7

B) 4 C) 3

D) 2

25. 当执行下面程序输入:ABC时,输出的结果是(A )。

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

{ char ss[10]=“12345”; strcat(ss,“6789”); gets(ss);

printf(“%s\\n”,ss); }

A)ABC B)ABC9 C)123456ABC D)ABC456789

二. 填空题(本题总分20分,每空2分)

1. ASCII代码中,字母A的序号是65,以下程序的输出结果是【65 89】。

第 7 页 共 12 页 C语言程序设计A卷

#include main( )

{ char c1=’A’, c2=’Y’; printf(“%d, %d\\n”, c1, c2); }

2. 若x为int型变量,则执行以下语句后x的值是【2】。

x=7; x+ = x- = x+x ;

3. 有int a=3, b=4, c=5; 则以下表达式的值是【3】。

! (a+b)+c -1 && b+c/2

若二维数组a有m列,则计算任一元素a[i][j]在数组中的位置的公式是【i*m+j

】。

4. C语言提供了三种预处理语句,他们是宏定义,【文件包含】 和条件编译。 5. 以下程序的功能是用选择法对数组a中的整数由小到大进行排序。

void sort(int b[],int n) { int i, j, t;

for(i = 0; ib[j]) {t = b[i]; ; b[j]=t; } } main()

{ int a[]={5, 8, 6, 2, 7, 4, 1, 3}; int i;

第 8 页 共 12 页 C语言程序设计A卷

sort(a, 8);

for(i = 0; i<8; i ++ ) printf(“﹪5d”, a[i]); printf(“\\ n”); }

6. 以下程序的功能是先为数组a输入数据,再为x输入一个数据,在数组a中找出第一个

与x相等的元素并将其下标输出,若不存在这样的元素,则输出“Not found!”标志。 main()

{int i,x,a[10]; for(i = 0; i<10; i ++ ) scanf(“﹪d”, 【8】 ); scanf(“﹪d”, &x); printf(“﹪d”, x); for(i = 0; i<10; i ++) if( 【9】 ) break;

if ( 【10】 ) printf(“ position:﹪d \\ n”, i); else printf(“ Not found! \\ n”,x); }

三. 分析程序,写出运行后的结果。(本题总分10分,每小题5分)

1、下述程序的输出结果是_____s=13_______________。 #include main( ) { int s=10, k;

第 9 页 共 12 页 C语言程序设计A卷

for( k=7; k>4; k--) { switch(k) { case 1: case 4:

case 7: s++; break; case 2: case 3: case 6: break; case 0:

case 5: s+=2; break; } }

printf(“s=%d”, s); }

2、下述程序的输出结果是__________4,5__________。 void swap(int *a, int *b) { int *tmp; tmp = a; a = b; b = tmp; *tmp = 4; }

第 10 页 共 12 页 C语言程序设计A卷

main()

{ int a = 3,b = 5; swap(&a,&b); printf(“%d,%d”,a,b); }

四、编程题(本题总分20分,每小题10分)

1、编程从键盘输入一个5行5列的二维数组数据(设数值各不相等),并找出数组中的最大值及其所在的行下标和列下标。要求格式化打印输出,例如最大值形式:Max=最大值,row=行标,col=列标。 #include Void main(){

Int I,j,Max,a[5][5],row,col; Max=0;

For(i=1;i<=5;i++){ For (j=1;j<=5;i++){ Scanf(“%d”,&a[i][j]); If (a[i][j]>max) { max=a[i][j]; row=I; col=j; } } }

第 11 页 共 12 页 C语言程序设计A卷

Printf(“MAX=%D,ROW=%D,COL=%D”,MAX,ROW,COL); }

2. 主函数已有变量定义语句 double a=2.8, int n=4 , 以及函数调用语句 mypow( a,n ) 用以求a的n 次方。请编写mypow函数。

double mypow(double x,int y) { int n=0;

double ans=1.00; if(y==0)

return 1;//注意为0次方时的判断。 else {

while(n

return ans; } }

第 12 页 共 12 页 C语言程序设计A卷

本文来源:https://www.bwwdw.com/article/ag1p.html

Top