C语言毕业总补考试卷.doc
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
得分一、单项选择题(每小题1分,共30分)。
1. 一个C语言程序是由【】。
A) 一个主程序和若干个子程序组成
C)若干过程组成
2.以下运算符中,优先级最高的是【
A)-> B)函数组成D)若干子程序组成
B) — C) != D) &&
3.以下算术运算符中,要求两侧均是整型的是【】。
A) + B) % C) * D) /
4.设x是int.型变量,则表达式:x二3*5, x++, x+20的值为【】。
A) 15 B) 16 C) 36 D) 35
5.设沪1, b=2, c=3, d二4,则执行语句:if (a<b<c) d二1; else d=2;后,d
的值为【]o
A) 1 B) 2 C) 4 D)有语法错误
6.设一个int型数据在内存中占2个字节,则unsigned int.型数据的取值
范围是【】。
A) 0〜255 B) 0〜32767
7.有以下定义和语句:
C) 0〜65535 D) 0〜2147483647 铜陵学院
2009届毕业生毕业总补考试卷
《C语言程序设计》考试试卷
(适用班级:非计算机专业)
题号二三四总分
得分
int x=010, y=0xl0, z=10;
printf ( "%d, %d, %d" , x, y, z): 则输出结果为【]o
A)10, 10, 10 B) 8, 8, 10 C) 8, 10, 10 D) 8, 16, 10
8.有输入语句:scanf ( “%d, %d, %d” , &a, &b, &c);为使变量a的值为
D) 2次】。
12.以下能对一维数组a进行正确初始化的是【】。
B) int a[5]二{1, 2, 3,
2, 1 4, 5};
1, b为3, c为2,从键盘输入数据的正确形式应当是【]o
A) 132〈回车〉B) 1, 3, 2〈回车〉
C) 1 3 2〈回车〉D) a二1, b二3, c二2〈回车〉9.若i是整型变量,则以下循环执行次数是【lo
for(i=2; i>0; i--) printf (“%d ”,i);
A)无限次B) 0次C) 1次
10.以下能正确计算1+2+3+……+10的程序段是【
A)do{ i=l; s=l;
s二s+i;
i++;
}while (i<=10);
C) i=l; s=l;
do{ s二s+i;
i++;
}while(i<=10);
11.下面程序的运行结果是【
a=l; b=2; c二3;
while( a<b&&b<c) { t=a; a二
b; printf ( <<%d, %d, %d”,a, b,
A)1, 2, 3 B) 2, 1, 2 A) int a[5]二(0, 0, 0, 0, 0);
B} do{ i=l; s二0;
s二s+i; i++;
}while (i<=10);
D) i=l; s二0;
do{ s二s+i;
i++;
}while (i<=10);lo
b=t; c—; }
c);
C) 1, 2, 2 D) 1
C) int a[ ] = { };D) int a[5] = {5*0};
13.若有说明:int a[3][4];则对a数组元素的正确引用是【】。
A) a[2][4] B) a(l, 3) C) a[2] [0] D) a⑵⑴
14.若有说明:int a[3][4]二{0};则下面正确的叙述是【】。
A)只有元素a[0] [0]可得到初值0。
B)此说明语句不正确。
C)数组a中各元素都可得到初值,但不一定为0。
D)数组a中每个元素都可得到初值0。
15.若二维数组a有x列,则计算元素在数组中位置的公式是(a[0] [0]的位置是1)【Jo
A) i*x+j B) j*x+i C) i*x+jT D) i*x+j+l
16•设在函数max中定义了一个局部变量a,则a的有效范围是【】。
A)max函数。
B)程序中所有的函数。
C)源程序中max函数后面所有的函数。
D)无法确定。
17.C语言中规定,函数返回值的类型是由【】。
A)return语句中的表达式类型所决定。
B)调用该函数时的主调函数类型所决定。
C)调用该函数时系统临时决定。
D)在定义该函数时所指定的函数类型所决定。
18.下面函数调用语句含有实参的个数为【】。
max(a, max (b, c));
A) 1 B) 2 C) 3 D) 4
19.用指针变量对数据进行间接访问,用的运算符是【】。
A) + B) - C) & D) *
20•设char *s二“ABCDEF” ;则指针变量s指向的字符串的长度是【】。
A) 9 B) 5 C) 6 D) 7
21.下面程序的运行结果是【】。
main()
{
int a=3, b=4, c二5, max;
婷max=a;
I if(max<b) max=b;
I if(max<c) max=c;
电' printf( “%d” , max);
I A) 0 B) 3 C) 4 D) 5
22.下面程序的运行结果是【】。
main ()
{ int y=10;
do { y--; } while (y>=0);printf ( “%d”,y);
}
A) -1 B) 1 C) 8 D) 0
23.分析下面程序,从A、B、C、D四个选择项中选择一个答案:【】
main ()
{
float a[10] ;/*第 3 行*/
int i;
for(i=0; i<=10;i++) scanf(“%d”,&a[i]);/*第 5 行*/ for(i=0;
i<10; i++) a[i]二a[i]+l;
printf (“%f”, a[0]) ;/*第7 行*/ }
A)没有错误B)第3行有错误
C)第5行有错误D)第7行有错误
24.有定义:
int i, a[3][3]二{1, 2, 3, 4, 5, 6, 7, 8, 9};则下面语句的输出结果是【】。
for(i=0; i<3; i++) printf( a%d ” , a[i][i]);
A) 3 5 7 B) 3 6 9 0 1 5 9 D) 1 4 7
25.设有如下函数定义:int age (int n)
{ int s; if (n=l) s=20;
else s=age (n —1) +2;
return s;
D) 30
10
D)无法确定
若在main()函数中有下面的语句调用上述函数,则输出结果为【 printf ( "%d” , age (5));
A) 20
B) 24
C) 28
26.以下程序的执行结果是【 Jo
int min(int a, int b)
{ int c ; c=a<b?a : b ;
P=a ;
则表达式:* (p+3)的值是【
A) 5
B) 8
C)
29.以下程序的输出结果是【 main() { char *str= Goodmorning^ ; str=str+4;
printf ( "%s” , str);
return c ;
}
main()
{ int a=8, b=9; printf ( "%d” , min(a, b)); }
A) 8
B) 9
C) 17
27. 下面能正确进行字符串赋值操作的是
【 A) char s[5]={ "abcde” };
C) char *s= "abcde";
28. 设有以下定义和语句:
int a[3]二{3, 5, 8}, b=10, B) char D) char D) 1
s[5]= "abcde";
*s ; scanf ( "%s" , s[5]);
}
A) Goodmorning C) m
B) morning D) ning
30.若有以下定义,则值为4的表达式是【 ]o
int a[6]={0, 1, 2, 3, 4, 5}, *p=a ; A) a[3] B) *(a+3) C) *(p+4) D) p+4
得分
二、
阅读程序,写出程序运行结果(每题5分,共25分)。
1. main()
{ int i 二T ; printf( "%d, }
程序的输出结果为【
2. main()
{ int sum=l, i ; for(i=l ; i<=5; i++) sum=sum*i ;
printf ( "%d" , sum); }
程序的输出结果是【
3. main()
{ int a[3][3]={1, 2, 3, 4, 5, 6, 7, 8, 9}, i, sum 二0;
for(i=0; i<=2; i++)
%u” , i, i);
】。
】。
sum+二a[i][i];
printf ( “sum=%d”,sum); }
程序的输出结果是【
4. void exchange(int x, int y)
{ int t ;
t=x ; x 二y ; y=t ; }
main ()
{ int a=3, b=4;
lo
得分
三、程序填空题(每空仅限填一条语句,每空3分,共计
15 分)。
】;
i 卄)
exchange (a, b); printf ( “%d, %d” , a, b); }
程序的输出结果是【
Jo
5. main()
{ int a[6]={l, 2, 3, 4, 5, 6}, i, t, *pl 二a, *p2二&a[5]; for(i=0; i<=2; i++, pl++, p2--)
{ t 二*pl ; *pl=*p2; *p2二t ; } for(i=0; i<=5; i++) printf ( “%3d" , a[i]); }
程序的输出结果是【
Jo
1.下面程序的功能是求1+2+3+ ...... +100。
请填空。
main()
{ int. i, sum 二0; for(i=l ;【
【
J;
printf( “1+2+3+……+100=%d”,sum); }
2.下面程序的功能是求3个整数的最大值。
请填空。
int max(int a, int b, int c) { int max ; max=a ;
if(max<b) max=b ; if(max<c) max=c ;
四、程序设计题(共
30分)。
main()
{ int x, y, z ;
scanf (“ %d%d%d ”,&x, &y, &z); printf ( “max 二%d”,max (x, y, z)); }
3.以下程序的功能是把两个整数进行交换,请填空。
void swap(【
{ int t ;
t 二*p ; *p 二*q ; *q 二t ; }
main ()
{ int a=3, b=7;
printf( a
a=%d, b=%d” , a, b);
}
1. (7分)编程求解问题:100元买100只鸡,母鸡3元1只,公鸡2元1只。
问
母鸡、公鸡各多少只?
2. (8分)输入3个整型数据,请编写程序,将这3个数据按从小到大的顺序输出
显示。
| 3. (7分)写一个判断某一整型数据是否是素数的函数fun
I void fun(int data)
评I r
4. (8分)编写一个能够完成两个字符串连接功能的函数string_cat,该函数首咅匕为:void
string_cat(char ^pl, char *p2)
在main函数中输入两个字符串,通过调用该函数string_cat,完成两个字符串的连接,并将连接后产生的一个新字符串通过呃in函数血出显示。