C语言基础练习:涵盖数组、函数、循环与条件判断
需积分: 3 185 浏览量
更新于2024-09-17
收藏 39KB DOC 举报
该资源是一个C语言的自测练习,主要涵盖数组、字符串、函数调用、循环控制、条件判断、数组初始化等方面的基础知识。
1. C语言中,初始化多维数组时,可以默认省略最后一个下标的边界。这意味着你可以只指定前面维度的大小,最后一个维度的大小可以根据已知数据自动推断。例如,`int arr[2][3] = {...}`,这里第二个维度的大小3可以省略,编译器会根据初始化的数据自动计算。
2. 判断字符串长度应使用`strlen`函数。这个函数接受一个字符串(字符数组)作为参数,并返回字符串的长度,不包括结束符'\0'。
3. 函数返回值的类型是在定义函数时指定的,不是由return语句中的表达式类型、调用函数的主调函数类型或临时类型决定。例如,`int func() {...}` 定义了一个返回整数的函数。
4. 当用数组名作为函数调用的实参时,实际传递给形参的是数组的首地址,而不是数组的第一个元素值或所有元素值。这允许函数通过指针操作数组。
5. `while(i++<4)` 这个循环在i等于1时开始,每次循环后i递增1,因此在满足条件`i++<4`时,循环结束,i的值会变为5。
6. 选项B `char b[10]; b="Hello!";` 是错误的,因为C语言中不能直接将字符串常量赋值给未初始化的字符数组,需要使用`strcpy`函数。
7. `!a` 表达式等价于 `a == 0`,在布尔逻辑中,非零值被认为是真,零值被认为是假。所以`!a`意味着"a"不为真,即"a"为零。
8. 循环 `for(k=16; k>0; k-=3) putchar('*')` 会输出五颗星,因为k从16递减到13,每次减3,共执行两次循环。
9. 给定的程序段是一个累加器,将变量`s`初始值设为`a`,然后从1累加到`c`,因此等价的赋值语句是 `s = s + c;`。
10. 选项C `inta[2][2]={{1},2,3}` 是错误的,因为它在初始化二维数组时,第二行的元素数量与声明不符。
11. 以下程序会输出7641,因为当`x`是3的倍数时,它会打印`x-1`的值并递减`x`,直到`x`不再满足条件。
```c
main() {
int x=8;
for(;x>0;x--) {
if(x%3==0) {
printf("%d",--x);
continue;
}
}
}
```
这个练习涵盖了C语言的基础概念,对于初学者巩固基础知识非常有帮助。
198 浏览量
321 浏览量
140 浏览量
2021-11-13 上传
125 浏览量
2010-10-26 上传
389 浏览量
2008-05-28 上传

墙都发霉了
- 粉丝: 0
最新资源
- C语言模拟时钟程序实现
- DirectX 9.0入门:3D游戏编程基础
- GCC中文手册 - GNU C/C++编译器指南
- Linux高级路由与流量控制:IPROUTE2详解
- Keil与Proteus联合仿真教程:单片机与嵌入式系统模拟
- Ibatis开发全攻略:入门到高级特性详解
- WebWork教程0.90版:入门与核心概念解析
- USB HID协议详解:设备类定义与固件规范
- 3D游戏编程入门:DirectX 9.0教程
- 信息技术笔试题集:涵盖网络、数据库与操作系统
- 河北工程大学科信学院在线选课系统设计说明书
- XToolsCRM企业版手册:全方位指南
- SAP Business One敏捷SDK:实战指南与核心技术
- SAP Business One 敏捷系统管理实战指南
- SAP Business One 敏捷服务详解与操作指南
- SAP Business One 中文版库存管理实战指南