C语言基础练习:涵盖数组、函数、循环与条件判断
需积分: 3 88 浏览量
更新于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语言的基础概念,对于初学者巩固基础知识非常有帮助。
2009-08-07 上传
2010-09-24 上传
2013-07-30 上传
2021-11-13 上传
2012-10-10 上传
2010-10-26 上传
2008-05-28 上传
2009-06-04 上传
墙都发霉了
- 粉丝: 0
- 资源: 19
最新资源
- MATLAB实现小波阈值去噪:Visushrink硬软算法对比
- 易语言实现画板图像缩放功能教程
- 大模型推荐系统: 优化算法与模型压缩技术
- Stancy: 静态文件驱动的简单RESTful API与前端框架集成
- 掌握Java全文搜索:深入Apache Lucene开源系统
- 19计应19田超的Python7-1试题整理
- 易语言实现多线程网络时间同步源码解析
- 人工智能大模型学习与实践指南
- 掌握Markdown:从基础到高级技巧解析
- JS-PizzaStore: JS应用程序模拟披萨递送服务
- CAMV开源XML编辑器:编辑、验证、设计及架构工具集
- 医学免疫学情景化自动生成考题系统
- 易语言实现多语言界面编程教程
- MATLAB实现16种回归算法在数据挖掘中的应用
- ***内容构建指南:深入HTML与LaTeX
- Python实现维基百科“历史上的今天”数据抓取教程