C语言12分有多少学分,2012-2013 C语言程序设计期末试卷(上学期3学分版)

《2012-2013 C语言程序设计期末试卷(上学期3学分版)》由会员分享,可在线阅读,更多相关《2012-2013 C语言程序设计期末试卷(上学期3学分版)(7页珍藏版)》请在人人文库网上搜索。

1、一、选择题(每小题2分,共34分) 1. 以下不合法的用户标识符是__C____。 A、j2_KEY B、Double C、4d D、_8_ 复习要点: 标识符的定义: 首字符必须是字母或下划线;后续字符可以是字母、数字或下画线。 C、4d 中用了4做首字符,所以不合法 2以下叙述中正确的是__A____。 A、C程序中注释部分可以出现在程序中任意合适的地方 B、花括号“”和“”只能作为函数体的定界符 C、构成C程序的基本单位是函数,所有函数名都可以由用户命名(库函数) D、分号是C语言之间的分隔符,不是语句的一部分 复习要点: A、C程序中注释部分可以出现在程序中任意合适的地方。对, 注释由。

2、/* */包含 B、花括号“”和“”只能作为函数体的定界符,不对。还可以用做复合语句的定界符,也可以做结构体的定界符 C、构成C程序的基本单位是函数,所有函数名都可以由用户命名(库函数),不对。库函数声明和主函数声明已经给定,只可以调用 D、分号是C语言之间的分隔符,不是语句的一部分,不对。分号是语句的结束,是语句的组成部分 3设int a=12,则执行完语句a+=a-=a*a后,a的值是__D____。 A、0 B、264 C、144 D、-264 原因: 赋值运算赋”=”和符合赋值运算赋都是右结合性,所以,先执行a=12然后执行a-=a*a,即a=a-a*a, a的值为-132。最后执行a。

3、+=a,即a=a+a. 4假定x和y为double型,表达式x=2,y=x+3/2的值是__D____。 A、3.500000 B、3 C、2.000000 D、3.000000 复习要点: 各种类型数据运算后的数据类型 在算术运算时,数据运算时的类型按照数据类型自动转换的原则进行。 就这道体来说,3/2是整数和整数相除,计算结果还是整数,且没有4舍5入的概念。 所以3/2的结果为1。则x+1是double类型和 int类型的和,结果的类型应该为double类型。 即2.0+1的最后结果3.000000 5语句:printf(%d,(a=2)&(b=-2);的输出结果是___B___。 A、2。

4、 B、1 C、-4 D、-2 复习要点:逻辑运算符” &”是”与”运算,即只有两个操作数为真,结果才为真。在判断两个操作a和b数的值时,都是非0,即a和b为真。运算结果为真用1表示,故B 对, 6若变量c为char类型,能正确判断出c为小写字母的表达式是___D___。 A、a=a)|(c=c) D、(c=a)&(c=”表达一个数值的范围,学生常常犯这个错误 B)错,逻辑运算符”|”是”或”运算,即只要有一个操作数为真,结果为真,这里显然要两个操作数都为真,所以不可以用 C)错,and 不是一个C语言运算符 复习要点:逻辑运算符” &”是”与”运算,即只有两个操作数为真,结果才为真。 7在嵌套。

5、使用if语句时,C语言规定else总是___C___。 A、和之前与其具有相同缩进位置的if配对 B、和之前与其最近的if配对 C、和之前与其最近的且不带else的if配对 D、和之前的第一个if配对 这道题出得不太好,正确回答应该是:在语法允许的情况下,和之前与其最近的且不带else的if配对。 例如: if(a) if(b a=1; else b=2; 这里else 只能和if(a) 配对。 不可以和if(b,因为在语法上, if(b a=1; 是一条复合语句,语法上不可能和复合语句外的语句 配对 8以下循环体的执行次数是__C____。 main() int i,j; for (i=0,。

6、j=1; i=0b=0)&(a=0&b=0)&(a0)&(a+b0 原因:A、错 (a=0b=0)表示a和b不一定同时为正。 (a void main() int a =1,2,3,4,5,6,7,8,9,10,*p; *p=a; /*语句错误*/ ____p=a________ printf(%fn,*p+9); /*语句错误*/ ____ printf(%dn,*p+9); ________ printf(%fn,*p+9); 改为 printf(%dn,*p+9); 格式符d 用于输出整数 8下面的程序采用辗转相除法与函数求两个整数的最大公约数,其中两条语句有语法或算法错误,请在空格处填。

7、上正确语句。 #include void main() int gcd(int a, int b); int a,b,abd; printf(intput data a b:n); scanf(%d,%d,a,b); /*语句错误*/ ___ scanf(%d,%d,&a,&b); _________ abd=gcd(a,b); printf(abd=%dn,abd); int gcd(int x,int y) int t; if(x int a=10, b=20; a+=b; b=a-b; a-=b; printf(a=%d,b=%dn,a,b); 2. 写出下面程序的运行结果。 #incl。

8、ude main() int i; for(i=1;i=0;j-) if(i+j=2) y +=aij; printf(x=%d,y=%dn,x,y); 4. 写出下面程序的运行结果。 #include int a=100; fun() static int a =20; a+; printf(%dn,a); void main() int i; for(i=1;i=3;i+) a+; printf(%d,a); fun(); 5. 写出下面程序的运行结果。 main() int a=1,2,3,4,5,6,7,8,9,10,*p; p=a; *(p+3)+=2; printf(%d,%dn,*p,*(p+3); p+=3; printf(%d,%dn,*p,*(p+3); 四、程序设计(共25分) 1、编写函数fun(int m)求1000以内所有m的倍数之和,m为一个正整数;并编写main函数调用该函数。(12分)。 2、编写一个输出20行以内的杨辉三角形函数,yanghui(int n), 其中n为需要输出杨晖三角形的行数,并编写main函数调用该函数。注:main函数首先输入需要输出杨辉三角形的行数,并判断所输入的行数是否小于20。(13分)。 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值