-
#include <stdio.h> int main() { int arr[3][3] = {{1,2,3},{4,5,6},{7,8,9}}; //这应该都明白吧!创建一个二维数组。 int i,j; int sum=0; for(i=0;i<3;i++) //控制行的循环 也就是arr[3]【也就是这个第一个[3]的循环】[3] { for(j=0;j<3;j++) //控制列的循环 也就是arr[3][3]【也就是第二个3的循环】 { if(i%2==0&&j%2==0) //判断是否为四角的数 你用张纸列一下 你会发现四个的角的行和列都符合这个规则,而其他的不符合。 sum+=arr[i][j]; //循环 把每次循环出来结果相加一下。 } } sum+=arr[1][1]; //因为是对角线嘛 所以还有一个中间的数,而这个中间的数不符合上面的if条件, 所以另加一下, 你用纸列一下 就明白啦 printf("对角线元素之和是:%d\n",sum);//输出结果 return 0; }查看全部
-
float a = 1.7;在以下选项中选出相应的输出语句 A printf("%d\n", a); B printf(a); C printf("%f\n", a); D printf("%c\n", a);选C printf("%f\n", a);是不是有点问题啊?不是应该显示出1.700000么?查看全部
-
打个生动的比方. 你的祖母生下你妈, 然后, 你家的族谱上就有你祖母的名字了, 但是她已经不在了 。 然后你妈生下你 。 她走之后, 她的名字也在族谱上。 然后你生下你儿子, 你死后你的名字也再族谱上。 一次类推。然后用族谱上剩下的名字进行运算。 同意请点赞 ,谢谢!查看全部
-
printf("%d\n",a++);a=100先打印所以打印出来的是100但后有++也就是要a=100+1 printf("%d\n",++a);a由上可知是101这里先运算再打印a=101+1打印就是102 printf("%d\n",--a);先运算是a=102-1再打印则是101 printf("%d\n",a--);先打印上一步的a也就是101再运算101-1=100 printf("%d\n",a+1);a=100打印的是100+1, printf("%d\n",a);上一步的打印是101但上一步不影响a的值所以打印100查看全部
-
#include <stdio.h> int main() { double numOne = 2.5; //定义浮点型变量num并赋值为2.5 int numTwo = (int) numOne; printf("num的整数部分是%d\n", numTwo); return 0; }查看全部
-
continue的作用是结束本次循环直接进入下一次,所以这里判断条件时符合能被3整除的数都直接跳过了循环进去了下一次循环,剩下来的就都是不能被3整除的数了。然后求他们的和查看全部
-
注意标点符号的正确性查看全部
-
getWordNumber(10) 分解
getWordNumber(10) = getWordNumber(9) + 10
getWordNumber(9) = getWordNumber(8) + 9
getWordNumber(8) = getWordNumber(7) + 8
getWordNumber(7) = getWordNumber(6) + 7
........................ ................... .....................
getWordNumber(1) = 1 // 结束递归
10+9+8+7+6 ..查看全部 -
auto是C语言的关键词之一
C语言中的 32 个关键字:
int float double char short long signed unsigned
if else switch case default for while do
break continue return void const sizeof struct typedef
static extern auto register enum goto union volatile查看全部 -
函数的返回值是什么意思呢?
主函数调用子函数的时候,实质上就是调用函数的返回值,也就说主函数在调用子函数的时候,对子函数的参数赋值,子函数参数得到赋值后会运行执行块代码,得到一个值,这个值就是最后要返回给主函数的(称为返回值),那么要怎么返回呢?就需要在子函数里面通过return语句(return xx,xx就是要返回的值)来把这个值返回给主调函数。返回值是哪种数据类型就把子函数定义成哪种类型。
如果子函数是无返回值的,就需要把子函数定义成void类型,void函数可以有执行块,但不能有返回值(即return xx中的xx是空的,不能写东西,可以直接不写return,也可以写成return;)。
那么这个无返回值是要怎么被主函数调用呢?主函数如果给void函数赋值是得不到结果的(没有返回值),所以主函数中是无法在printf里面调用void函数的。(为什么printf不能调用void函数呢?因为printf打印的这个参数实际上就是调用函数的返回值,也就说把return后面的值打印出来的,如果return后面没有值,没有这个参数printf就没法打印,就报错)
如果主函数要调用void函数,直接把void函数单独写一句,并对参数赋值就行了,这时候void函数里面的执行块如果有打印东西就会被打印出来。
查看全部 -
1 数据类型关键字(12个):
(1) char :声明字符型变量或函数
(2) double :声明双精度变量或函数
(3) enum :声明枚举类型
(4) float:声明浮点型变量或函数
(5) int: 声明整型变量或函数
(6) long :声明长整型变量或函数
(7) short :声明短整型变量或函数
(8) signed:声明有符号类型变量或函数
(9) struct:声明结构体变量或函数
(10) union:声明共用体(联合)数据类型
(11) unsigned:声明无符号类型变量或函数
(12) void :声明函数无返回值或无参数,声明无类型指针(基本上就这三个作用)
2控制语句关键字(12个):
A循环语句
(1) for:一种循环语句(可意会不可言传)
(2) do :循环语句的循环体
(3) while :循环语句的循环条件
(4) break:跳出当前循环
(5) continue:结束当前循环,开始下一轮循环
B条件语句
(1)if: 条件语句
(2)else :条件语句否定分支(与 if 连用)
(3)goto:无条件跳转语句
C开关语句
(1)switch :用于开关语句
(2)case:开关语句分支
(3)default:开关语句中的“其他”分支
D返回语句
return :子程序返回语句(可以带参数,也看不带参数)
3 存储类型关键字(4个)
(1)auto :声明自动变量 一般不使用
(2)extern:声明变量是在其他文件正声明(也可以看做是引用变量)
(3)register:声明积存器变量
(4)static :声明静态变量
4 其它关键字(4个):
(1)const :声明只读变量
(2)sizeof:计算数据类型长度
(3)typedef:用以给数据类型取别名(当然还有其他作用
(4)volatile:说明变量在程序执行中可被隐含地改变
查看全部 -
注意到第二个源文件也就是test.c【后面将用T代替】调用了第一个源文件hello.c【后面将用H代替】中的函数,因此我们先将H中被T调用的函数printLine()修改为外部函数也就是加上一个extern,这样T也就是一个正常的源文件了。 现在讨论两种情况:
A。当我们把T编译为静态函数的时候——static say() ,我们在H若要使用T的这个静态函数,这需要将他调用过来,而一个静态函数是无法直接调用的,此时我们需要先引入say()函数所在的源文件,也就是H中的第二行代码的用意。
B。当我们把T编译为动态函数的时候——say()或者extern say()【因为extern可以省略】,我们若要在H中使用T的这个函数say()那么我们可以直接调用,因为say()是一个外部函数,无需引入其所在的源文件T也就是不需要H的第二行,因此会有人说“只要把第二行注释掉就行了”其实这句话的前提是say()是一个外部函数。
查看全部 -
C语言中的关键字不能做标识符,关键字通常指的是
1、auto 声明自动变量
2、short 声明短整型变量或函数
3、int 声明整型变量或函数
4、long 声明长整型变量或函数
5、float 声明浮点型变量或函数
6、double 声明双精度变量或函数
7、char 声明字符型变量或函数
8、struct 声明结构体变量或函数
9、union 声明共用数据类型
10、enum 声明枚举类型
11、typedef 用以给数据类型取别名
12、const 声明只读变量
13、unsigned 声明无符号类型变量或函数
14、signed 声明有符号类型变量或函数
15、extern 声明变量是在其他文件正声明
16、register 声明寄存器变量
17、static 声明静态变量
18、volatile 说明变量在程序执行中可被隐含地改变
19、void 声明函数无返回值或无参数,声明无类型指针
20、else 条件语句否定分支(与 if 连用)
21、switch 用于开关语句
22、case 开关语句分支
23、for 一种循环语句
24、do 循环语句的循环体
25、while 循环语句的循环条件
26、goto 无条件跳转语句
27、continue 结束当前循环,开始下一轮循环
28、break 跳出当前循环
29、default 开关语句中的“其他”分支
30、sizeof 计算数据类型长度
31、return 子程序返回语句(可以带参数,也可不带参数)循环条件
32、if 条件语句
必须是字母或下划线开头
查看全部 -
两种方法解决,第一种,将hello.c中的#include "test.c";这一行删去,在函数printLine之前加上extern(事实上可省略)使其成为外部函数,使其能被test.c调用从而在test.c中完成函数say,函数say默认为外部函数,能被(删去#include "test.c"的)hello.c调用,从而完成。
第二种,在hello.c中只将函数printLine改为外部函数使其能在test.c中被调用,而在test.c中,将函数say改为test.c的内部函数,即在其之前加上static。由于hello.c中已经包含include"test.c"所以能直接调用该函数。查看全部 -
需要在第12行"x = 100;"前加上"int ",这时该行就变成了在if语句块内定义了一个新的int x,这个x的作用域是if语句块,这时if内x的值是100,if外main内x的值是10,main外x的值是77.
查看全部
举报