专升本C语言历年试题与解析

版权申诉
5星 · 超过95%的资源 2 下载量 199 浏览量 更新于2024-08-17 2 收藏 26KB DOC 举报
"专升本C语言历年考试题及答案" C语言是计算机科学中的基础编程语言,对于专升本的学生来说,掌握C语言是非常重要的。这份文档包含了历年专升本考试的C语言题目和答案,是备考的重要参考资料。下面我们将深入解析其中涉及的一些关键知识点: 1. C语言源程序在经过编译后,最终会生成一个可执行文件,其后缀为".exe"。因此,正确答案是C。 2. 在C语言中,整型常量的表示方式有多种,但不能包含逗号。所以,选项C(1,900)是不正确的整型常量。 3. 表达式3/5在C语言中进行整数除法,结果为0,因此选项C的值是0。 4. 非运算符!会将表达式的布尔值取反。表达式!(x>0||y>0)等价于!(x>0)&&!(y>0),因为非运算优先级高于或运算,并且或运算遵循短路原则。 5. C语言中表达式4&&3是合法的,表示逻辑与操作;+a表示取a的值;a=b=5是合法的赋值表达式;但int(3.14)不符合语法,因为C语言中没有类似强制类型转换的括号表达式。 6. 使用scanf函数输入数据时,必须按照指定的格式进行输入。在本例中,正确输入应为20,30,40,因此选项D是正确的。 7. printf函数用于输出,如果在输出格式中直接使用变量名,如_%d_,会导致编译错误。正确的格式化输出应使用%d、%o、%x或%f等占位符。 8. 定义的字符串数组s包含换行符"\n",因此数组s的元素个数为13,选项B正确。 9. 变量p是一个指向数组a中第一个元素的指针,执行语句p=&a[0]+1后,p指向a[1],因此*p的值是3。 10. 表达式-k++在C语言中首先计算-k,然后递增k,因此等价于-(k++)。 11. 函数内部定义的变量属于局部变量,也称为内部变量,因此选项D正确。 12. 表达式(x=10.0/4.0)的结果是浮点数,由于C语言中的算术运算默认遵循精度最低原则,10.0是浮点数,所以结果为2.0,选项B正确。 13. 结构体变量定义后,可以通过点操作符.来访问成员,因此正确表达式是p[0].s=“abc”。 14. C语言的运算符优先级中,!的优先级最高,其次是&&,最后是||。因此,正确顺序是D。 15. 缺少具体的程序段,无法给出输出结果。 通过这些题目,我们可以看出C语言考试的重点包括:数据类型、运算符与表达式、输入输出、数组、指针、结构体以及基本的控制结构。考生在准备C语言考试时,应重点复习这些知识点,理解并熟练运用它们。
2010-09-30 上传
【程序1】 题目:有1,2,3,4个数字,能组成多少个互不相同且无重复数字的三位数都是多少 1.程序分析:可填在百位,十位,个位的数字都是1,2,3,4.组成所有的排列后再去 掉不满足条件的排列. 2.程序源代码: main() { int i,j,k; printf("\n"); for(i=1;i<5;i++) /*以下为三重循环*/ for(j=1;j<5;j++) for (k=1;k<5;k++) { if (i!=k&&i!=j&&j!=k) /*确保i,j,k三位互不相同*/ printf("%d,%d,%d\n",i,j,k); } } ============================================================== 【程序2】 题目:企业发放的奖金根据利润提成.利润(i)低于或等于10万元时,奖金可提10%;利润高 于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可可提 成7.5%;20万到40万之间时,高于20万元的部分,可提成5%;40万到60万之间时高于 40万元的部分,可提成3%;60万到100万之间时,高于60万元的部分,可提成1.5%,高于 100万元时,超过100万元的部分按1%提成,从键盘输入当月利润i,求应发放奖金总数 1.程序分析:请利用数轴来分界,定位.注意定义时需把奖金定义成长整型. 2.程序源代码: main() { long int i; int bonus1,bonus2,bonus4,bonus6,bonus10,bonus; scanf("%ld",&i); bonus1=100000*0.1;bonus2=bonus1+100000*0.75; bonus4=bonus2+200000*0.5; bonus6=bonus4+200000*0.3; bonus10=bonus6+400000*0.15; if(i<=100000) bonus=i*0.1; else if(i<=200000) bonus=bonus1+(i-100000)*0.075; else if(i<=400000) bonus=bonus2+(i-200000)*0.05; else if(i<=600000) bonus=bonus4+(i-400000)*0.03; else if(i<=1000000) bonus=bonus6+(i-600000)*0.015; else bonus=bonus10+(i-1000000)*0.01; printf("bonus=%d",bonus); }