《最新《c程序设计》期末试卷a(--1).doc》由会员分享,可在线阅读,更多相关《最新《c程序设计》期末试卷a(--1).doc(8页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精品资料c程序设计期末试卷a(-2010-1).班级: 学号: 姓名: 装 订 线 杭州师范大学杭州国际服务工程学院2009-2010学年第一学期期末考试C程序设计试卷(A)题 号一二三四五六总分得 分得分一、单项选择题(共20分,每题1分)1、C语言中的标识符只能由字母、数字和下划线三种字符组成,且第一个字符( )。(A)必须为字母 (B)必须为下划线 (C)必须为字母或下划线 (D)可以是字母、数字和下划线中任一种字符2、下面关于for 循环的正确描述是( )。(A)for循环只能用于循环次数已经确定的循环(B)for循环是先执行循环体语句后判断条件(C)在for循环中,不能用break语
2、句结束循环(D)for循环体语句中,可以包含多条语句,但必须用花括号括起来3、以下关于运算符优先顺序的描述中正确的是( )。(A)关系运算符算术运算符赋值运算符逻辑与运算符 (B)逻辑与运算符关系运算符算术运算符赋值运算符(C)赋值运算符逻辑与运算符关系运算符算术运算符(D)算术运算符关系运算符赋值运算符0|y0)等价于( )。(A)!(x0)&!(y0) (B)!x0&!y0(C)!x0|!y0(D)!(x0)|!(y0)7、要为字符型变量a赋初值,下列语句中正确的是( )。(A)char a=3; (B)char a=3; (C)char a=%; (D)char a=*;8、C语言函数返
3、回值的类型是由( )决定的。(A)return语句中的表达式类型 (B)调用函数的主调函数类型(C)调用函数时临时 (D)定义函数时所指定的函数类型9、以下关于数组的描述正确的是( )。(A)数组的大小是固定的,但可以有不同类型的数组元素。(B)数组的大小是可变的,但所有数组元素的类型必须相同。(C)数组的大小是固定的,所有数组元素的类型必须相同。(D)数组的大小是可变的,可以有不同类型的数组元素。10、若用数组名作为函数调用的实参,传递给形参的是( )。(A)数组的首地址 (B)数组第一个元素的值(C)数组中全部元素的值 (D)数组元素的个数11、以下描述正确的是( )。(A) C语言允许给
4、实型变量赋整型值,因此实型变量中允许存放整型值。(B) 在赋值表达式中,赋值号的右边既可以是变量也可以是表达式。(C) 执行赋值表达式a=b后,内存中变量a和变量b的值都将发生变化。(D) 在C语言中不论是整数还是实数,只要在允许的范围内都能准确无误的表示。12、下列运算符中,优先级最低的是( )。(A)* (B)!= (C)+ (D)=13、 以下不正确的字符串赋值或初始化是( )。(A) char *s; s=string; (B) char s= s, t, r, i, n, g, 0 ;(C) char s10; s=string;(D) char s=string;14、为表示关系x
5、yz,应使用C语言表达式( )。(A) (x=y)&(y=z) (B) (x=y)AND(y=z)(C) (x=y=z) (D) (x=y)&(y=z)15、若变量已正确定义,表达式(j=3, j+)的值是( )。(A)3 (B)4 (C)5 (D)016、数组定义为 int a32=1, 2, 3, 4, 5, 6,数组元素( )的值为6。(A)a32 (B)a21 (C)a12 (D)a2317、若变量已正确定义并且指针p已经指向某个变量x,则(*p)+相当于( )。(A)p+ (B)x+ (C)*(p+) (D)&x+18、以下说法正确的是( )。(A) C程序总是从第一个定义的函数开始
6、执行。(B) C程序中被调用的函数必须在main函数中定义。(C) C程序总是从main函数开始执行。班级: 学号: 姓名: 装 订 线 (D) C程序中的main函数必须放在程序的开始部分。19、函数strcmp(ABCD,ABCDE)的返回值是( )。(A) 0(B) 正数(C) 负数(D) 随机值20、函数调用表达式fun(exp1,exp2), (exp3,exp4,exp5)中的参数个数是( )。(A) (B) (C)(D)得分二、填空题(共20分,每题2分)1、结构化程序设计的3种结构是顺序结构、选择结构、_。2、在C语言中实数类型又称浮点型,浮点型数据有_和_两种类型。3、C语言
7、本身不提供输入输出语句,输入输出操作是由函数来实现的,最常用的输入输出函数有_和printf() 等。4、函数定义中的参数称为_,函数调用时的参数称为_。5、若有定义int i=1,j=2,k=3; k*=i+j; 则k最后的值是_。6、在C语言中,字符串的结束标志是_。7、设int a=7,b=6,c=5;表达式a+bc+c&b=c|cb的值为_。8、判断变量a、b是否绝对值相等而符号相反的逻辑表达式为 。9、若有定义int i=10;则语句printf(%x,i);输出的值是 ,语句printf(%d,3=i=5);输出的值是 。10、写出与数学式(x+2)e2x对应的C语言表达式 。得分
8、三、程序阅读题(共20分,每题5分)1、读程序,写出和程序输出格式一致的输出结果。#include void swap3 (int *px, int *py);int main(void)int a = 1, b = 2; int *pa = &a, *pb = &b; swap3(pa, pb); printf (After calling swap3: a=%d b=%dn, a, b); return 0;void swap3(int *px, int *py) int *pt; pt = px; px = py; py = pt;输出结果:2、读程序,写出和程序输出格式一致的输出结果。
9、#include int main(void) float x=2.0,y; if(x0.0)y=0.0; else if(x5.0)&(!x) y=1.0/(x+2.0); else if(x10.0)y=1.0/x; elsey=10.0; printf(%fn,y); return 0;输出结果:3、读程序,写出和程序输出格式一致的输出结果。#include int main(void) int k=4, m=1, p; p=func (k, m ); printf (%d, p); p=func(k, m); printf (%dn, p); return 0;int func(int
10、 a, int b)static int m, i=2; i += m+1 ; m = i + a + b ; return (m) ; 输出结果:4、读程序,写出和程序输出格式一致的输出结果。#include 班级: 学号: 姓名: 装 订 线 int main(void)int k,j; for(j=10;j11;j+) for(k=9;k=j-1) printf(%d,j); return 0;输出结果:得分四、程序填空题(共10分,每空2分)1、下列程序的功能是输出11000之间的所有水仙花数。水仙花数是指各位数字的立方和等于其自身的数。例如,153的各位数字的立方和是13+53+33
11、=153。请为程序填空。【程序代码】#includeint main(void)int digit,k,m,s=0;for(k=1;k=1000;k+) _(1) _; while(m!=0) digit=m%10;s=s+digit*digit*digit;_ (2) _; if(_ (3) _) printf(%dn,s); return 0;2、下列程序的功能是输入x、n后输出下列算式的值。请为程序选择合适答案填空。【程序代码】#include int main(void) double s, t, x; int i, n;scanf(%lf%d,&x,&n); _ (4) _ for(
12、i=1;i=n;i+) _ (5) _ s+=t; printf(%lfn,s); (4) A、s=0; t=0;B、s=0; t=1;C、s=x; t=1;D、s=x; t= -1(5)A、t=-t*x/i;B、t=pow(-x,i)/i; C、t=-pow(x,i)/i; D、t=t*x/i;得分五、程序改错题(共10分,每个错误2分)下列程序中有5处错误,请找出其中的错误,并改正之。(每找对1个错误,加1分,每修改正确1个错误,再加1分)【程序功能】计算1!+2!+10!的值,要求定义并调用函数fact(n)计算n!,函数类型是double。【程序代码】1 #include 2 doub
13、le fact(int n)3 int main(void)4 5 int i;6 double sum = 0;7 for(i = 1; i 10; i+)8 sum = sum + fact(i);9 printf(1!+2!+.+10!=%lfn, sum);10 return 0;11 12 double fact(int n);13 14 int i;15 double result;16 for(i = 1; i = n; i+)17 fact(n) = fact(n) * i;18 return result;19 得分班级: 学号: 姓名: 装 订 线 六程序设计题(共20分)
14、1、将一个32的的矩阵存入一个32的二维数组中(数组元素为整数), 找出最大值以及它的行下标和列下标,并输出。(10分)【运行示例】Enter 6 integers:3 2 10 -9 6 -1max=a10=102、编写程序,判断从键盘输入的一个字符串是否为“回文”。“回文”,是指顺读和倒读都一样的字符串,如level。要求定义函数isPalindrome(char *s)判断字符串s是否为“回文”,当s为“回文”时返回1,否则返回0。在主函数main中完成字符串输入,并调用isPalindrome函数判断是否为“回文”,若是“回文”输出“Yes”,否则输出“No”。(10分)【运行示例】Input a string: abcddcbaYes