C语言精编100题详解:专升本考试重点

0 下载量 173 浏览量 更新于2024-06-17 收藏 73KB DOCX 举报
"专升本C语言精编100题专升本重点" 这些题目主要涵盖了C语言的基础知识,包括程序的编译过程、标识符的命名规则、数据类型、常量与变量的定义、运算符的优先级、条件判断以及表达式的计算等。下面是这些知识点的详细解释: 1. C语言编译过程:C语言编写的源程序需要经过编译器转换成目标代码,然后通过链接器链接系统库,形成可执行文件,才能在计算机上运行。 2. 用户标识符命名规则:标识符可以包含字母(大小写)、数字和下划线,但不能以数字开头。特殊符号如中划线和保留关键字不能作为标识符。 3. 有效和无效的标识符:例如,`long`是C语言的关键字,不能作为用户标识符;`_2Test`、`_1234_`和`_1_2`是合法的标识符,但`2_int_`、`Main`、`_0`和`sizeof`由于是关键字或不符合规则,所以不是合法的。 4. 实型常数:合法的实型常数可以包含指数表示法(如`2E0`、`5E-3`),但不能有小数点后的小数(如`1.2E`)或错误的指数(如`1.234e0.4`)。 5. 字符常量:字符常量由单引号包围,可以包含转义字符,如`\t`(制表符)、`\n`(换行符)、`\0`(空字符)、`\17`(八进制字符)和`\xcc`(十六进制字符)。非法的字符常量包括包含双引号的`"\"`和非法的八进制表示`'\018'`。 6. 运算符优先级:最高优先级的运算符通常为算术运算符,如乘除和加减,其次是关系运算符(如`<`, `>`)和赋值运算符(如`=`, `+=`等)。在给定的选项中,`==`和`<=`的优先级相同,且高于`=`和`%`。 7. 条件表达式与赋值语句:`a<=b`会返回一个布尔值,因此`printf("%d\n",a<=b);`会输出1(真)或0(假)。非法的表达式如`0<=x<=100`因为不支持连续比较,而非法的赋值语句如`++(i+1)`因为不允许对表达式的结果进行自增操作。 8. 表达式的计算:在C语言中,算术运算遵循特定的顺序。例如,`3.6-5/2+1.2+5%2`中,整数除法`5/2`结果为2,`5%2`结果为1,因此整个表达式的值是`3.6 - 2 + 1.2 + 1`,结果是`3.6`,而不是`4.3`或`4.8`。 9. 语句和变量声明:`int a`是合法的变量声明,但`int_int`和`doubleint_`因为中间有下划线而非法,`charFor`虽然语法上合法,但不符合约定的变量命名习惯,`float US$`因为包含非字母数字字符而非法。 这些题目旨在帮助专升本学生巩固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); }