![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
番杰的问答笔记
番杰
嵌入式软件小萌新
展开
-
【番杰的问答笔记】指针问题,分不清什么时候需要*这个符号
1. 问题第四行到第十四行什么时候要*这个符号啊,#include<stdlib.h>#include<stdio.h>#include<time.h>void fun(int a[],int n, int *max, int *d){ int i; *max=a[0]; for(i=0;i<n;i++) { if(*max<=a[i]) { *max=a原创 2022-05-04 20:43:42 · 250 阅读 · 0 评论 -
【番杰的问答笔记】指针赋值
1. 问题若有说明 int i,j=2,* p=&i;则能完成i=j赋值功能的语句是?A.i=* p;B.* p=* &jC.i=&j;D.i=**p;2. 回答选B;解析:A.i = *p:意思把i的值赋值给的i,废话属于是了;*p表示对p中存储的地址进行取值,定义中p定义为指向i地址的指针,所以就相当于对i的地址进行取值,也就是i的数值。B.*p=*&j:首先看&j:对j进行取址操作,结果为j的地址,再在前面加一个*,表示对这个地址进行取原创 2022-03-21 11:56:50 · 226 阅读 · 0 评论 -
【番杰的问答笔记】c语言中汉字如何计数的问题
1. 问题今天学了一个统计字符数的代码#include <stdio.h>int main(){ int count = 0 ; printf("请输入英文字符:"); while ( getchar() != '\n') { count = count + 1;//这个算式不是用来计数的吗?为什么中文会计对应两个字符? } printf("你总共输入了%d个字符", count); return 0;}原创 2022-01-06 17:33:18 · 1152 阅读 · 0 评论 -
【番杰的问答笔记】函数调用问题
1. 问题按照谭浩强C语言的书打的代码,运行之后,起不到比大小的作用#include <stdio.h>int main(){ int max(int x, int y); int a, b, c; scanf("%d,%d", &a, &b); c = max(a,b); printf("max=%d\n",c); return 0;}2. 回答你这个max函数的自己写;它有两个int参数,返回值是int类型;原创 2022-01-05 22:47:45 · 424 阅读 · 0 评论 -
【番杰的问答笔记】函数的参数问题
1. 问题为什么有的int main()里有void,有的却是空的?2. 回答void本身就是空的意思;其实这个void可写可不写:差别就是:当你写了void的时候,在往函数里传入参数时,编译器会报错(或是警告);而你不写void时,在往函数里传入参数时,编译器并不会报错(或是警告)。注:在函数没有形参的情况下,不论你写void或是不写,你传入的参数并不会对函数都不会造成影响。所以,为了代码的严谨性,我推荐书是函数在没有形参时,就写void,这样的程序会更加严谨一些。哦对了,本身main原创 2022-01-04 17:16:33 · 163 阅读 · 0 评论 -
【番杰的问答笔记】if判断条件
1. 问题第八行这里if(j>=i)是为什么啊?按照他这个循环j永远不会大于或等于i啊?int fun(int lim, int aa[MAX]){ int i, j, k = 0; for (i = 2; i <= lim; i++) //求出小于或等于lim的素数 { for (j = 2; j < i; j++) if (i % j == 0)bre原创 2022-01-03 22:34:15 · 405 阅读 · 0 评论 -
【番杰的问答笔记】代码纠错
1. 问题#include <stdio.h>int main(){ int year,i,num = 13; int a[] = {31,29,31,30,31,30,31,31,30,31,30,31}; //闰年 int b[] = {31,28,31,30,31,30,31,31,30,31,30,31}; //平年 printf("请输入一个年份:");原创 2022-01-02 21:51:00 · 492 阅读 · 0 评论 -
【番杰的问答笔记】char name[256]的作用
1. 问题不知道这个char name[256]到底有啥用?非得256吗?2. 回答这里面的name就是一个数组,用来存放名字,至于name[256]这括号里的256指的是你可以输入一个最多为265个字符作为名字。其实完全不需要这么大,5、10、20都可以;只要是输入的字符个数比这个数组的大小小就可以;另外:你也就可以任性一点,偏偏输入的名字要比这个数组的大小大;这也没关系,程序并不会报错,但是你输入的大于数组大小的部分可能会造成内存的错误。覆盖掉其他十分重要的信息,所以十分不推荐这样的任原创 2022-01-01 21:21:05 · 1123 阅读 · 0 评论 -
【番杰的问答笔记】取余问题
1. 问题if (!(i % 3) || !(i % 5))是什么意思我的理解是如果不是i%3或不是i%5,则sum+=i(我理解错了,请指正谢谢!!!)#include <stdio.h>int main(){ int i, sum = 0; for (i = 0; i < 1000; i++) { if (!(i % 3) || !(i % 5)) {原创 2021-12-31 20:55:30 · 179 阅读 · 0 评论 -
【番杰的问答笔记】多结构体套用问题
1. 问题poseTmp.getBasis().setRPY(rpyAngles.getX(), rpyAngles.getY(), rpyAngles.getZ());上面这个两个点,运算顺序是从左算还是从右算?2. 回答从左算,(不能说是“算”,应该是“看”)这就是一个多个结构体的套用:大概意思是:poseTmp是个结构体1变量;这个结构体1里面有一个函数:getBasis();这个函数的返回值是一个结构体2;这个结构体2里面有一个setRPY函数;这个函数的参数是三个函数:rpy原创 2021-12-30 08:59:18 · 239 阅读 · 0 评论 -
【番杰的问答笔记】循环中的语句顺序问题
1. 问题为什么修改后结果会是20呢? 是因为scanf函数吗2. 回答准确的说是这个程序的顺序问题;(1)修改前:先计算和,再输入数值这种情况下,你每一次输入的数值都会经过while(getchar()!=‘\n’&& status == 1)判断;若输入的是数字就会在下次循环的时候,进行相加,若不是数字就会直接退出循环。所以这个是正确的写法。(2)修改后:先输入数值,再计算和这种情况下,就无法控制你输入的是否为数字了,然后就直接进行相加,而后在经过while的判断退出原创 2021-12-29 17:58:01 · 430 阅读 · 0 评论 -
【番杰的问答笔记】if判断条件的问题
1. 问题if (!(i % 3) || !(i % 5))是什么意思我的理解是如果不是i%3或不是i%5,则sum+=i(我理解错了,请指正谢谢!!!)#include <stdio.h>int main(){ int i, sum = 0; for (i = 0; i < 1000; i++) { if (!(i % 3) || !(i % 5)) {原创 2021-12-28 09:01:18 · 572 阅读 · 3 评论 -
【番杰的问答笔记】一个关于数组指针的问题
1. 问题想请教下为什么第二行是(*p)[3]而不是(*p)[2]呢 指针p指向的元素不是只有两行吗?int array[2][3] = { {0,1,2},{3,4,5} };int (*p)[3] = array;2. 回答(*p)[3]是一个数组指针,它指向的是一个有三个元素的数组;即p指向 {0,1,2}这个数组的起始地址;而(p+1)则指向{3,4,5}这个数组的起始地址;这个中括号里的3,指的是:数组指针指向的数组中的元素个数(或称大小)。而不是你所想的那样。...原创 2021-12-27 17:09:50 · 158 阅读 · 0 评论 -
【番杰的问答笔记】结构体命名问题
1. 问题分不清小甲鱼的这个Book和book分别表示什么?2. 回答Book是结构体的名字;(就相当于 int 、long、char这些)book是一个变量的名字,这个变量是Book结构体类型的。原创 2021-12-26 22:35:27 · 387 阅读 · 0 评论 -
【番杰的问答笔记】素数判断问题
1. 问题第7行这里if(j>=i)是为什么啊,int fun(int lim, int aa[MAX]){ int i, j, k = 0; for (i = 2; i <= lim; i++) //求出小于或等于lim的素数 { for (j = 2; j < i; j++) if (i % j == 0)break; i原创 2021-12-25 20:56:19 · 451 阅读 · 0 评论 -
【番杰的问答笔记】计算活了多久的程序问题
1. 问题1:while(year1<year2)是为了防止用户输入year1>year2?2:这个循环怎么循环,从哪开始?到哪结束?3:这个循环怎么计算?#include <stdio.h>int main(){ long count = 0; // count用于存放一共活了多少天 int year1, year2; // year1是你的生日年份,year2是今天的年份 int month1, month2;原创 2021-12-24 16:52:19 · 569 阅读 · 0 评论 -
【番杰的问答笔记】出生排序问题
1. 题目及代码输入n个朋友的信息,包括姓名、生日、电话号码,本题要求编写程序,按照年龄从大到小的顺序依次输出通讯录。题目保证所有人的生日均不相同。输入格式:输入第一行给出正整数n(<10)。随后n行,每行按照“姓名 生日 电话号码”的格式给出一位朋友的信息,其中“姓名”是长度不超过10的英文字母组成的字符串,“生日”是yyyymmdd格式的日期,“电话号码”是不超过17位的数字及+、-组成的字符串。#include<stdio.h>struct fri{ char原创 2021-12-23 16:45:07 · 152 阅读 · 0 评论 -
【番杰的问答笔记】数组索引问题
1. 问题如有变量 char name[5] = {‘F’, ‘i’, ‘s’, ‘h’, ‘C’};,可以通过 name[索引号] 的方式访问字符 ‘C’,请问索引号这里应该是多少?2. 回答name[0] = ‘F’;name[1] = ‘i’;name[2] = ‘s’;name[3] = ‘h’;name[4] = ‘C’;注意一点:数组的下标是从0开始的,而不是1。这就意味着数组的最大索引值为定义数组个数 - 1.例子:char array[10] = {0};array原创 2021-12-22 08:59:05 · 336 阅读 · 0 评论 -
【番杰的问答笔记】强制转换问题
1. 问题我不太理解这道题答案的意思,我以为第六题错是错在取值运算符(*)是要获取指针变量指向的变量的值,而a不是一个指针变量,所以会报错。2. 回答小甲鱼的答案跟你的答案差不多,就是说“什么类型的变量就要做什么事”这里就相当于让一个int类型的变量去做int*类型变量的事,就像本山大叔说的:“不是他的活,你让他干”搁谁谁乐意呀,所以就报错了呗。另外,如果你非得让它做“这件事”,就得进行强制类型转换,把这项工作合理化,找一个“冠冕堂皇”的理由。让int类型的变量**暂时的(画重点:暂时原创 2021-12-20 13:33:21 · 189 阅读 · 0 评论 -
【番杰的问答笔记】三维数组
1. 问题怎么在三维数组找相应的值啊?2. 回答这道题用语法糖,很好理解,可以参考:什么是语法糖(1)((arrary + 1)+2) 用语法糖表示则为:array[0][1][2] 直接看数组找数值为:o(2)(((arrary + 1) + 1)+2) 用语法糖表示则为:array[1][1][2] 直接看数组找数值为:o(3)**arrary 用语法糖表示则为:array[0][0][0] 直接看数组找数值为:x(1)(**arrary + 1) 用语法糖表示则为:array[0原创 2021-12-19 21:23:46 · 220 阅读 · 0 评论 -
【番杰的问答笔记】union(共用体)的使用
1. 问题include <stdio.h>int main(){ union exa { struct { int a; int b; }out; int c; int d; }e;原创 2021-12-18 14:41:18 · 554 阅读 · 2 评论 -
【番杰的问答笔记】fgets函数
1. 问题用指针来实现strcat函数,我想请教下用fgets函数将标准输入流的字符串放到字符数组str1中的时候,str1里最后一个元素是’\0’还是’\n’还是就是’C’("I love FishC"的最后一个)?为啥我用执行第一个代码的时候,打印的时候是接不起来的?#include <stdio.h>#define MAX 1024int main(){ char str1[MAX]; char str2[MAX]; char原创 2021-12-17 09:12:46 · 592 阅读 · 0 评论 -
【番杰的问答笔记】printf函数的问题
1. 问题这是哪里错了吗,编译不出来?#include <stdio.h>int main(){ printf("打印五个字符:",70,105,115,104,67); printf("前边用 填充:",2015); printf("前边用0填充:",2015); printf("右对齐,保留两位:",3.1416); printf("左对齐,保留三位:",3.1416); printf("原创 2021-12-15 07:00:00 · 222 阅读 · 0 评论 -
【番杰的问答笔记】循环次数问题
1. 问题代码意思相同,输入结果不一样,求助!#include<stdio.h>int main(){ int i,n; int d=1; double sum=0.0; scanf("%d",&n); for (i=1;i<=n;i++){ sum=sum+1.0/d; d+=2;} printf("%.6lf",sum); return 0;}#include<stdio.h>原创 2021-12-14 08:56:54 · 1452 阅读 · 0 评论 -
【番杰的问答笔记】for循环问题
1. 问题运行结果为:0,0,0,1,2,0,2,3,4,3,4,5,这个代码可以帮忙看一下是怎么运行的吗?我自己研究了半天还是不知道运行的结果为什么是这样的?# include <stdio.h>int main(){ int j,k; int x[3][4]={0},y[4][3]={0}; for(j=0;j<3;j++) for(k=j;k<4;k++)原创 2021-12-13 08:58:22 · 1364 阅读 · 0 评论 -
【番杰的问答笔记】摄氏度与华氏度的转换
1. 问题为什么输入45华氏度,输出是7.00摄氏度啊?#include <stdio.h>#include<math.h>int main(){ printf("请输入华氏度:"); int i; double g; scanf_s("%d", &i); g = (i - 32) * 5 / 9; printf("转换为摄氏度是:%.2f", g); return 0;}2.原创 2021-12-12 20:41:20 · 510 阅读 · 0 评论 -
【番杰的问答笔记】void的问题
1. 问题我看老师的视频有一串开始代码不知道是什么意思?int main() 这句书上在括号里面加了 void 但是老师视频里面没加我没学到这里所以不懂但是好奇想问问?2.回答这个可加也可以不加,viod 表示 “空”,首先,你要知道main函数是可以带参数的,就比如开始调用main函数时,给它一个参数:main(15)之类,就跟调用其他子函数代替参数一样,这个你往后学就知道了,小甲鱼会讲到的。所以这里,我用一个子函数add(啥名都行,就是一个子函数)你这样定义一个子函数ad原创 2021-12-11 09:34:58 · 278 阅读 · 0 评论 -
【番杰的问答笔记】C语言的基本问题
1. 问题( D )1.下面四个选项中,均是正确的数值常量或字符常量的选项是。A)0.0 0f 8.9e ‘&’B)“a” 3.9e-2.5 1e1 ‘"’C)‘3’ 011 0xFF00 0aD)+001 0xabcd 2e2 50( D ) 2. 则以下符合C语言语法的表达式是。A)a=a3=2B)a+=a-=(b=4)(a=3)C)x+y=-3*aD)y=float(i)( C )3.定义如下变量和数组;int k;in原创 2021-12-10 11:02:50 · 828 阅读 · 0 评论 -
【番杰的问答笔记】long long是什么类型
1. 问题请问unsigned long long 是属于数据类型吗?#include <stdio.h>#include <math.h>int main(){ unsigned long long sum = 0; unsigned long long temp; unsigned long long weight; int i; for (i=0; i < 64; i++)原创 2021-12-09 08:59:26 · 2100 阅读 · 0 评论 -
【番杰的问答笔记】逗号表达式的问题
1. 问题为什么我打印&array和&array[0]的地址不同,数组的起始地址不应该相同吗?&array[0]addr of string1: 0x7ffcbde474f0addr of string2: 0x7ffcbde474e0&arrayaddr of string1: 0x7ffe6172cf40addr of string2: 0x7ffe6172cf302. 回答你不能打印&array;你应该打印的是array;array才是表示原创 2021-12-07 17:35:29 · 163 阅读 · 0 评论 -
【番杰的问答笔记】求解答如何输出十个数里的最大值和最小值
1. 问题请问我这里错哪里了?#include<stdio.h>main(){ int a[10],i,j,max,min; for(i=0;i<=9;i++) { printf("请输入数字"); scanf("%d",&a[i]); } max=a[0]; for(i=0;i<=9;i++)原创 2021-12-06 09:06:34 · 510 阅读 · 0 评论 -
【番杰的问答笔记】数组与指针
1. 问题已知有定义char arr[4] = { ‘s’, ‘i’, ‘p’, ‘c’ }; 令char * p等于&arr[2],则(-1)[p]表示什么字符?简述原因。2. 回答答案:‘ i ’原因:(1)首先,你需要知道:(-1)[p],这个是什么意思。答,这一种“语法糖(Syntactic sugar)”,具体可以参考:什么是语法糖它表达的意思就是 * ((-1)+ p );同样的可以把(-1)与 p 交换位置:*( p + (-1)),它的语法糖会比之前的更好理解一些:p原创 2021-12-05 17:19:01 · 781 阅读 · 0 评论 -
【番杰的问答笔记】指向指针的指针
1. 问题想问下第50行max = --cChar > max ? cChar : max; // 最后会算多一个’\0’,所以减去哪里有多算一个’\0’,有没有大佬能解释一下#include <stdio.h>int main(){ char str[1024]; char *p = str; // 用于间接寻址 char *pos[1024] = {0}; // 记录每个单词的地址 int原创 2021-12-03 09:06:53 · 472 阅读 · 0 评论 -
【番杰的问答笔记】关于c语言注释问题
1.问题百思不得,为什么无法编译,把注释哪行去掉就可以正常编译。6 2 C:\Users\lyl\Desktop\c语言\6.c [Error] expected expression before ‘/’ token14 3 C:\Users\lyl\Desktop\c语言\6.c [Error] ‘s’ undeclared (first use in this function)14 3原创 2021-12-01 08:57:28 · 833 阅读 · 0 评论 -
【番杰的问答笔记】关于goto语句的使用
1. 问题为什么下面的程序会报错?[Error] label ‘nember’ used but not defined#include <stdio.h>void nember(){ printf("不是素数"); }void main(){// void nember()//void nember()//{// printf("不是素数"); //}原创 2021-11-30 08:22:03 · 1267 阅读 · 0 评论 -
【番杰的问答笔记】输入英文句子,统计其中的单词个数
1. 问题输入一行英文句子,统计其中的单词个数。例如,输入”How are you.”,则输出3,请看下下面的代码问题出在哪里?#include <stdio.h>#include <string.h>int main(void){ int a,b,i,n; char str[100]; gets(str); b=strlen(str); for(i=0;i<b;i++原创 2021-11-29 08:56:45 · 6810 阅读 · 0 评论 -
【番杰的问答笔记】求输入一句英文,统计字母,数字,其他符号个数
1. 问题请问下面的代码有什么问题?#include<stdio.h>main(){ int i=0,j=0,x=0; char ch; while((ch=getchar())!='\n') { scanf("%c",&ch); if(ch>'A'&& ch<'z') i++;原创 2021-11-28 09:53:03 · 121 阅读 · 0 评论 -
【番杰的问答笔记】凯撒加密
1. 问题请问putchar(‘a’ + (ch - ‘a’+3)%26); 是什么意思啊,换算成整型来计算的话,(ch-‘a’+3)怎么都不可能打过26把,求余以后不是0就是1再加上’a’怎么可能做到向后偏移两位的,这是为什么啊?求大佬指点!!!#include <stdio.h>int main(){ int ch; printf("请输入明文:"); while ((ch = getchar()) != '\n')原创 2021-11-27 10:49:21 · 488 阅读 · 0 评论 -
【番杰的问答笔记】 求 10000 以内的素数个数
1. 问题i为啥要从5开始,2和3也是素数啊,从5开始最后的结果不就不准了吗?还有为啥if后面还有个else {flag = 1}; 只要是素数,从头到尾flag不都是1吗?有什么作用呢?#include <stdio.h>int main(){ int count = 2; // 已知2和3是素数 int i, j; _Bool flag = 1; for (i = 5; i < 10000; i++)原创 2021-11-26 08:54:59 · 824 阅读 · 0 评论 -
【番杰的问答笔记】c语言的子函数命名
1. 问题请问把函数名写成下面这样,然后在主函数中调用,存在什么隐患吗?#include<stdio.h>#include<stdlib.h>//作为分隔线int c__________________________________________________c(){;}int main(void){ c__________________________________________________c(); printf原创 2021-11-25 09:10:42 · 445 阅读 · 0 评论