C语言专升本真题精选:编程与基础复习

需积分: 42 27 下载量 200 浏览量 更新于2024-07-15 4 收藏 468KB PDF 举报
"这是一份2008年的高职升本计算机基础复习材料,专注于C语言,包含了精编的100道练习题,旨在帮助考生备考C语言考试。" 在C语言的学习和考试中,了解基本概念和语法是至关重要的。这份资料中的题目涵盖了多个关键知识点: 1. C语言的程序编译过程:C语言的源代码需要经过编译才能生成可执行文件,因此选项B正确。编译后得到的目标代码需要链接才能执行,选项A、C和D描述不准确。 2. 用户标识符命名规则:C语言的标识符可以包含字母(大小写)、数字和下划线,但不能以数字开头。选项B的中划线不能出现在标识符的开头,所以是错误的;选项D的2_int_违反了不能以数字开头的规定;选项C的int_2则因为保留字int的使用而错误。 3. 合法的用户标识符:long是C语言的关键字,不能用作用户标识符;_2Test和_0是合法的,因为它们遵循标识符的命名规则;3Dmax违反了不能以数字开头的规则;A.dat看起来像是一个文件名,不是有效的C语言标识符。 4. 非法的用户标识符:sizeof是C语言的关键字,不能用于标识符;Main、_0和_int则是合法的。 5. 变量定义:在C语言中,变量命名也有一些限制,如int_int定义错误,因为两个下划线相连是不允许的;doubleint_和charFor是合法的,尽管不是最佳实践;floatUS$定义错误,因为美元符号不是有效的标识符字符。 6. 合法的实型常数:在C语言中,实型常数可以表示为科学记数法,如5E2代表500,2E0代表2,5E-3代表0.005。选项A的5E2.0是非法的,因为小数点后的0是多余的;选项B的E-3没有前导数字;选项C是合法的;选项D的1.3E缺少指数。 7. 合法的实型常数:与第6题类似,1.234e0.5是非法的,因为指数不能是小数;3.14159E是非法的,因为它缺少指数;5E-3是合法的;E15是非法的,因为它缺少数字前导。 8. 不合法的常量:1.234e0.4和E15同上,非法;1.234e0是合法的,代表1.234。 9. 不合法的常量:1.234e04是合法的;1.234e0.4和1.234e+4同上,非法;1.234e0是合法的。 10. 不合法的数值常量:011是八进制数,合法;le1不是C语言的数值表示;8.0E0.5和E15同上,非法;0xabcd是十六进制数,合法。 11. 非法的字符常量:'\t'是制表符,合法;'\17'是八进制转义序列,合法;"\n"是字符串,不是字符常量;'\xaa'是十六进制转义序列,合法。 12. 非法的字符常量:'\018'表示八进制数,但超过ASCII码的范围,非法;'\"'和'\\'是合法的转义序列;'\xcc'是合法的十六进制转义序列。 13. 运算符优先级:在C语言中,'%'(取模)的优先级高于'=='(等于),'=='的优先级高于'=','='的优先级高于'<='和'>='。 14. 程序输出:`a<=b`的结果是布尔值,当a小于或等于b时,输出1,否则输出0。由于a=3,b=4,所以输出0。 15. 非法的表达式:'0<=x<=100'在C语言中是合法的,虽然在数学上它可能被误解为区间;'i=j==0'是合法的条件赋值;'(char)(65+3)'将整数转换为字符;'x+1=x+1'是非法的,因为赋值操作符不能出现在表达式的右边。 16. 非法的赋值语句:'j++'是合法的自增操作;'++(i+1)'在C语言中是非法的,因为自增操作不能应用于表达式的结果;'x=j>0;'是合法的条件赋值;'k=i==j;'也是合法的条件赋值。 17. 表达式求值:'3.6-5/2+1.2+5%2'的计算中,整数除法5/2结果为2,5%2的结果为1,因此表达式的值为3.6 - 2 + 1.2 + 1 = 3.8,即选项B。 这些题目涵盖了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); }