【C语言基础知识】
1. C语言源程序的基本单位是(B 函数)。C语言的源代码是由一个或多个函数组成的,每个函数完成特定的任务。主函数`main()`是程序的入口点。
2. 下列程序的输出结果是(C 0)。这段代码尝试将整数5除以7,结果为0,因为C语言中的整数除法会截断小数部分。
```c
main( ) {
int a=7,b=5;
printf("%d\n",b=b/a);
}
```
3. 表达式`(a=5,b=2,a>b?a++:b++,a+b)`的值是(C 9)。这个表达式首先赋值`a=5`,然后`b=2`,由于`a>b`不成立,执行`b++`,之后计算`a+b`得到9。
4. 赋值语句后的a取值分别为(C 125,31,20)。`a=125.534`赋值浮点数,`a=(int)125.521%4`取整并进行模运算,结果是31,`a=5<<2`进行位左移操作,相当于乘以2的2次方,即20。
5. `while(k=0)`是无限循环(B 循环是无限循环),因为`k=0`是一个赋值语句,总是返回0,所以循环条件始终为真。
6. 以下程序的输出结果为(B *** *** *** ***)。函数`prt()`会打印三个星号,`main()`里的循环会调用该函数三次。
```c
int i;
void prt( ) {
for(i=5;i<8;i++)
printf("%c",'*');
printf("\t");
}
main( ) {
for(i=5;i<=8;i++)
prt( );
}
```
7. 在C语言程序中,函数的定义不可以嵌套(B 函数的定义不可以嵌套,但函数的调用可以嵌套),但函数的调用可以出现在任何位置。
8. 函数调用`func((e1,e2),(e3,e4,e5))`含有2个实参(A 2),每个括号内的逗号表达式被视为一个整体参数。
9. 该程序的输出结果是(D d=700)。宏`ADD`展开后计算`(a+b)*c`,其中`a+b`为10,乘以7得700。
```c
#define ADD(x) x*x
main( ) {
int a=4,b=6,c=7,d=ADD(a+b)*c;
printf("d=%d",d);
}
```
10. 结构体`worker`中的`name`占20字节,`sex`占1字节,`union`至少占4字节(考虑`int`的大小),因此系统为`w`分配25字节的空间(C 25)。
11. 值为5的枚举常量是(D thu)。`mon=4`,所以`tue`是5。
```c
enum week{sun ,mon=4 ,tue,wed,thu,fri ,sat} w ;
```
12. 正确的赋值语句是(C *p="abcd";)。这将字符串常量赋值给指针`p`所指向的内存。
13. 值为6的表达式是(D (*p).n++)。这个表达式先获取`p`所指结构体的`n`成员,然后加1。
以下是程序的运行结果:
1. `average`函数计算数组的平均值,输出平均分数是85.50。
```c
average score is 85.50
```
2. 程序打印字符数组`a`的内容,然后通过指针`pa`访问第一个元素,输出`A`。
```c
A B C D E
A
```
3. `for`循环中,当`b`大于等于20时跳出,所以输出的`a`和`b`取决于循环中断前的状态,具体值取决于程序运行时的情况。
4. 主函数输出`main()`的首几个字符,具体输出取决于编译器和系统。
这些题目覆盖了C语言的基础知识,包括变量、运算符、流程控制、数组、函数、结构体、枚举、指针以及预处理宏等概念。理解和掌握这些知识点对于学习和使用C语言至关重要。