C语言基础练习:涵盖数组、函数、循环与条件判断
需积分: 3 113 浏览量
更新于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语言的基础概念,对于初学者巩固基础知识非常有帮助。
187 浏览量
317 浏览量
137 浏览量
2021-11-13 上传
111 浏览量
2010-10-26 上传
383 浏览量
2008-05-28 上传
墙都发霉了
- 粉丝: 0
- 资源: 19
最新资源
- 《LINUX与UNIX SHELL编程指南》读书笔记
- DELL MD3000 软件安装配置
- 程序设计模式解说 - 追MM版
- ASP.NET中数据库的使用实训指导.pdf
- SELinux usage guide
- spring+hibernate+struts的配置整和
- ansys技巧全集(很好的ansys技巧 英文版) 很多书上都没有的技巧
- wavecom 模块常用AT指令手册.pdf
- HTTP协议中文版.pdf
- 汽车测距预警及险警系统结构与设计研究
- iReport使用手册
- 中国移动代理服务器(MAS)设备规范.doc
- 转发:嵌入式视频处理基本原理
- MS SQL全库导入oracle
- jbpm中文入门指南
- core java I 笔记