C语言
文章平均质量分 78
小赵小赵福星高照~
这个作者很懒,什么都没留下…
展开
-
暑假第二十天之每天一些题系列
暑假第二十天之每天一些题系列一、选择题 若函数的参数是数组,则传递给这个参数的值是A. 整个数组被拷贝过去B. 数组的首地址C. 数组元素的个数D. 数组第一个元素的值答案解析:数组传参是传过去得是数组的首地址 以下数组初始化错误的是A. int d[2][3] = {{1,2},{3,4},{5,6}};B. int a[2][3] = {0};C. int a[][3] = {1,2,3,4,5,6};D. int b[][3] = {{1,2},{0}};答案解原创 2021-08-30 23:46:44 · 373 阅读 · 1 评论 -
暑假第十九天之每天一些题系列
暑假第十九天之每天一些题系列一、选择题 下面哪个选项可以交换指针p和q所指的int型变量的值A.temp = p;p = q;q = temp;B.temp = *p;*p = *q;*q = temp;C.temp = &p;*p = *q;q = *temp;D.temp = p;*p = *q;q = temp;答案解析:temp = *p;*p = *q;*q = temp;,对指针解引用拿到指向的内容,才能完成交换,故答案为B 若原创 2021-08-29 23:49:45 · 584 阅读 · 0 评论 -
暑假第十八天之每天一些题系列
暑假第十八天之每天一些题系列一、选择题 设有以下宏定义,则执行语句: z = 2 * (N + Y(5 + 1)); 后z的值为#define N 3#define Y(n) ((N+1)*n) /*这种定义在编程规范中是严格禁止的*/A. 出错 B. 42 C. 48 D. 54答案解析:#define定义的符号和宏在预处理阶段完成替换,z=2*(N+Y(5+1));被替换为:z=2*(3+((3+1)*5+1));则z的值为48 对于以下代码,哪种说法是正确的int i=原创 2021-08-28 22:46:17 · 857 阅读 · 0 评论 -
暑假第十七天之每天一些题系列
暑假第十七天之每天一些题系列一、选择题 下列程序段的输出结果为unsigned long pulArray[] = {6, 7, 8, 9, 10};unsigned long *pulPtr;pulPtr = pulArray;*(pulPtr + 2) += 2;printf("%d,%d\n", *pulPtr, *(pulPtr + 2));A. 8,10 B. 6,8 C. 7,9 D. 6,10答案解析:pulPtr指向数组的首元素,*(pulPtr + 2) +=原创 2021-08-28 09:38:26 · 427 阅读 · 0 评论 -
暑假第十六天之每天一些题系列
暑假第十六天之每天一些题系列一、选择题 在 C 语言中,表示静态存储类别的关键字是A. auto B. register C. static D. extern答案解析:static是静态存储类别的关键字 C 语言中函数返回值的类型是由决定的A. 函数定义时指定的类型B. return语句中的表达式类型C. 调用该函数时的实参的数据类型D. 形参的数据类型答案解析:C 语言中函数返回值的类型是由return语句中的表达式类型决定的 对二维数组的正确定义是A. i原创 2021-08-27 21:56:01 · 277 阅读 · 1 评论 -
暑假第十五天之每天一些题系列
暑假第十五天之每天一些题系列一、选择题 以下程序运行结果是int main(){ char a[] = "123456789" , *p = a; int i = 0; while (*p) { if (i%2 == 0) *p = '!'; i++ ;p++; } puts(a); return 0;}A. 1!3!5!7!9 B. !1!3!5!7!9! C. !2!4!6!8! D. 2!4!6!原创 2021-08-26 20:10:08 · 412 阅读 · 0 评论 -
暑假第十四天之每天一些题系列
暑假第十四天之每天一些题系列一、选择题 已知 int a[10] = { 0,1, 2, 3, 4, 5, 6, 7, 8, 9 }, *p = a; 以下不能表示数组 a 中元素的表达式是A. *a B. *p C. a D. a[p-a]答案解析:a是数组名,数组名是首元素的地址,是表示地址,不表示元素;而a[p-a]相当于是a[0],因为p和a的值相等,相减为0 已知 int a[] = {0,2,4,6,8,10 }, int *p = a+1; 其值等于0的表达式是A. *原创 2021-08-25 20:09:27 · 536 阅读 · 1 评论 -
暑假第十三天之每天一些题系列
暑假第十三天之每天一些题系列一、选择题 如果二进制文件 a.dat 已经存在,现在要求写入全新数据,应以什么方式打开A. “w” B. “wb” C. “w+” D. “wb+”答案解析:首先a.dat是二进制文件,现在要求写入数据,那我们需要以二进制写文件的方式打开文件,即"wb"文件的打开方式表:文件使用方式含义如果指定文件不存在“r”(只读)为了输入数据,打开一个已经存在的文本文件出错“w”(只写)为了输出数据,打开一个文本文件建立一个新的文件原创 2021-08-24 20:57:32 · 1299 阅读 · 0 评论 -
暑假第十二天之每天一些题系列
暑假第十二天之每天一些题系列一、选择题 定义了一维 int 型数组 a[10] 后,下面错误的引用是A. a[0] = 1 B. a[0] = 5*2 C. a[10] = 2 D. a[1] = a[2] * a[0]答案解析:a[10]越界访问了,10个元素下标是0-9。 在C/C++语言中,下面关于数组的描述错误的是A. 数组的名字就是指向该数组第一个元素的指针B. 长度为n的数组,下标的范围是 0-n-1C. 数组的大小必须在编译时确定D. 数组可通过值参数、地址指针、原创 2021-08-23 23:46:33 · 254 阅读 · 0 评论 -
暑假第十一天之每天一些题系列
暑假第十一天之每天一些题系列一、选择题 程序的输出结果是#include<stdio.h>int fun(char *s){ char *p = s; while(*p != '\0') { p++; } return(p-s);}int main(){ printf("%d\n",fun("goodbye!"));}A. 0 B. 6 C. 7 D. 8答案解析:将字符串goodbye!传到fun函数,s指向该字符串,然后原创 2021-08-22 23:22:46 · 239 阅读 · 0 评论 -
暑假第十天之每天一些题系列
暑假第十天之每天一些题系列一、选择题 关于如下代码,说法错误的是char acX[] = "abc";char acY[] = {'a','b','c'};char *szX = "abc";char *szY = "abc";A. acX 与 acY 的内容可以修改B. szX 与 szY 指向相同的地址C. acX 占用的内存空间比 acY 占用的大D. szX 的内容修改后, szY 的内容也会被更改答案解析:A :acX和acY都是数组,当然可以修改 B:因为"ab原创 2021-08-21 21:22:23 · 203 阅读 · 0 评论 -
暑假第九天之每天一些题系列
暑假第九天之每天一些题系列一、选择题 下面程序的输出结果为多少(32位机器上)void Func(char str_arg[2]){ int m = sizeof(str_arg); int n = strlen(str_arg); printf("%d\n", m); printf("%d\n", n);}int main(void){ char str[] = "Hello"; Func(str);}A. 5 5 B. 5 4 C.原创 2021-08-20 22:57:21 · 271 阅读 · 5 评论 -
暑假第八天之每天一些题系列
暑假第八天之每天一些题系列一、选择题 若有定义 typedef char STRING[255]; STRING s; 则 s 是A. 字符指针数组变量B. 字符数组变量C. 字符变量D. 字符指针变量答案解析:typedef char STRING[255];将char类型重定义为STRING[255],而STRING s就相当于是char s[255];,s是字符数组变量 若有定义语句: int a = 10; double b = 3.14; 则表达式 ‘A’+a+b 的类原创 2021-08-19 22:21:50 · 509 阅读 · 1 评论 -
暑假第七天之每天一些题系列
暑假第七天之每天一些题系列一、选择题 设 m 和 n 都是 int 类型,那么以下 for 循环语句for(m=0,n=-1; n=0; m++,n++)n++;A. 循环体一次也不执行B. 循环体执行一次C. 是无限循环D. 有限次循环E. 循环结束判断条件不合法F. 运行出错答案解析:循环进行的条件注意是n=0;这是将n赋给了0,那循环的条件永远为假,故循环一次都进不去 如下程序的输出结果是什么#include<stdio.h>#include原创 2021-08-17 23:15:43 · 238 阅读 · 0 评论 -
暑假第六天之每天一些题系列
暑假第六天之每天一些题系列一、选择题 以下程序的运行结果是int fun(int a,int b){ if(a>b) return(a+b); else return(a-b);}int main(){ int x = 3, y = 8, z = 6, r; r = fun (fun(x,y), 2 * z); printf(“%d\n”,r); return 0;}A. -48 B. 58 C. -58 D.原创 2021-08-17 21:52:35 · 362 阅读 · 0 评论 -
暑假第五天之每天一些题系列
暑假第五天之每天一些题系列一、选择题 如下程序:int a[10];int*pa;pa = a;则元素a[1]的地址可以表示为A. pa+1 B. pa+2 C. pa+4 D. a+2答案解析:数字名a是首元素的地址,pa存放的是首元素的地址,pa+1是第二个元素的地址,即a[1]的地址可以表示为pa+1 如下程序结果运行结果是int Change(int *pX){ int y = 8; y = y - *pX; pX = &y;原创 2021-08-17 20:53:42 · 534 阅读 · 0 评论 -
暑假第四天之每天一些题系列
暑假第四天之每天一些题系列文章目录暑假第四天之每天一些题系列一、选择题二、填空题三、算法题一、选择题 下列程序执行后, n 的值等于char a[20];char *p1 = (char *)a;char *p2 = (char*)(a+5);int n = p2-p1;A. 4 B. 5 C. 10 D. 20答案解析:数组名是首元素地址,p1存的是数组a的首元素地址,a+5是数组a第六个元素的地址,即p2指向数组a第六个元素的地址,n等于p2-p1,指针-指针是指针直接原创 2021-08-17 12:30:52 · 297 阅读 · 1 评论 -
暑假第三天之每天一些题系列
暑假第三天之每天一些题系列文章目录暑假第三天之每天一些题系列一. 选择题二、填空题三、算法题一. 选择题 以下关于函数设计不正确的说法是A. 函数设计应该追求高内聚低耦合B. 要尽可能多的使用全局变量C. 函数参数不易过多D. 设计函数时,尽量做到谁申请的资源就由谁来释放答案解析:函数设计应尽可能少的使用全局变量,因为全局变量的声明周期太长会长时间占用空间,容易出错 下面的程序,输出结果正确的是int main(){ int a = 5; if( a =原创 2021-08-16 10:40:12 · 569 阅读 · 0 评论 -
暑假第二天之每天一些题系列
暑假第二天之每天一些题系列文章目录暑假第二天之每天一些题系列一、选择题二、填空题三、算法题一、选择题 表达式 0x13&0x17,0x13|0x17 的值分别是多少A. 0x17 0x13 B. 0x13 0x17 C. 0xF8 0xE8 D. 0xec 0xC8答案解析:0x13的二进制为:000100110x17的二进制为:00010111&是按位与,它们按位与的结果为:00010011,转化为16进制为:0x13|是按位或,它们按位或的结果为:00010111原创 2021-08-15 22:03:46 · 513 阅读 · 0 评论 -
暑假第一天之每天一些题系列
暑假第一天之每天一些题系列选择题 若有定义: int a[] = {2,4,6,8,10,12,14,16,18,20,22,24},*q[4],k;for(k=0; k<4; k++){ q[k] = &a[k*3];}printf("%d\n",q[3][1]);则上面的程序段输出的结果是:A. 18 B. 22 C. 20 D. 输出项不合法,结果不正确答案解析:首先我们看需要打印的是何方神圣,q[3][1]?q[3][1]等价于什么呢?它等价于*(q[3原创 2021-08-15 13:22:22 · 276 阅读 · 0 评论 -
程序由创建到得到运行结果的过程你知道吗?程序的环境和预处理爆肝总结画图详解
程序的环境和预处理文章目录程序的环境和预处理程序的翻译环境和执行环境编译+链接翻译环境编译也分为三个阶段预处理阶段编译阶段汇编阶段链接阶段运行环境(执行环境)预处理详解**预定义符号**#define#define定义标识符#define定义宏#define替换规则#和##带副作用的宏参数宏和函数的对比命名约定#undef命令行定义条件编译常见的条件编译指令文件包含本地文件包含库文件的包含嵌套文件包含程序的翻译环境和执行环境在ANSI C的任何一种实现中,都存在两个不同的环境: 第一种是翻译环境,原创 2021-07-28 21:17:56 · 595 阅读 · 4 评论 -
文件操作的这些知识你学到了吗?画图+文字超详细讲解
文件操作文章目录文件操作为什么使用文件什么是文件程序文件数据文件文件名文件的打开和关闭文件指针文件的打开和关闭文件的顺序读写字符输出函数fputc字符输入函数fgetc文本行输出函数fputs文本行输入函数fgets格式化输出函数fprintf格式化输入函数fscanfprintf、fprintf、sprintf的区别scanf、fscanf、sscanf的区别二进制输出函数fwrite二进制输入函数fread文件的随机读写fseekftellrewind文本文件和二进制文件文件读取结束的判定被错误使用的原创 2021-07-24 21:25:40 · 780 阅读 · 0 评论 -
动态开辟内存的这些知识你知道了吗?了解柔性数组吗?超详细画图以及文字讲解,干货满满
动态内存分配文章目录动态内存分配前言为什么存在动态内存分配动态内存函数的介绍mallocfreecallocrealloc常见的动态内存错误几个经典的笔试题柔性数组柔性数组的特点柔性数组的使用柔性数组的优势前言数组的元素存储内存中在连续的位置上,它所需要的内存在编译时就被分配,但是我们也可以使用动态内存分配在运行时为它分配内存,下面博主将以以下内容介绍动态内存分配。为什么存在动态内存分配之前我们了解的有两种内存分配方式: 创建变量 创建数组int main(){原创 2021-07-23 21:24:13 · 522 阅读 · 2 评论 -
C语言结构体小白详解
结构体文章目录结构体结构体的声明结构的基础知识结构成员的类型结构体变量定义和初始化结构体成员的访问1.点(.)操作符:结构体变量.成员名2.箭头->操作符:结构体指针->成员名结构体传参值传递:地址传递:结构体的声明** 人–对象,一些值去描述对象**名字+年龄+性别+电话+地址书–对象,一些值去描述对象书名+作者+出版社+定价结构体类型-自定义类型结构的基础知识结构是一些值的集合,这些值称为成员变量。结构的每个成员可以是不同类型的变量。struct tag//struc原创 2021-05-11 22:14:48 · 326 阅读 · 1 评论 -
自定义类型的这些知识你知道吗?C语言超硬核结构体枚举联合体画图+文字详细讲解
自定义类型详解(结构体+枚举)数据经常以成组的形式存在。例如,一本书必须指定书名,书的价格,书号。如果这些值能够存储在一起,访问起来会很简单。但是如果这些值的类型不同,它们无法存储在数组当中,在C语言中,使用结构可以把这些不同类型的值存储在一起。接下来博主将以以下内容进行自定义类型的讲解:文章目录自定义类型详解(结构体+枚举)结构体结构体的基础知识结构体的声明结构体的特殊声明结构体的自引用结构体变量的定义和初始化结构体内存对齐为什么存在内存对齐?修改默认对齐数结构体传参值传递:地址传递:位段什么是原创 2021-07-19 20:54:35 · 661 阅读 · 10 评论 -
字符和字符串函数的这些知识你知道吗?超硬核3w字文章带你领略C语言字符与字符串的美!!!
字符函数和字符串函数文章目录字符函数和字符串函数字符串基础知识函数介绍长度不受限制的字符串函数strlen(字符串长度)strcpy(字符串拷贝)strcat(连接字符串)strcmp(字符串比较)长度受限制的字符串函数介绍strncpystrncatstrncmp字符串查找函数strstr(查找子串)strtok(分割字符串)错误信息报告strerrorperror(打印错误信息)字符操作字符分类字符转换内存操作函数memcpymemmovememcmp(内存比较)memset总结长度不受限制的字符串.原创 2021-06-10 18:32:41 · 1149 阅读 · 17 评论 -
C语言实现字符串左旋以及判断是否旋转你了解吗?
文章目录字符串左旋方法一:暴力移位法方法二:三步翻转法判断是否旋转方法一:穷举法方法二:追加串字符串左旋方法一:暴力移位法解题思路:每次旋转一个字符: 1.将首字符放在临时变量temp中 2.后边的n-1个字符往前挪动\ 3.temp放在字符串最后这样我们就实现了一个字符左旋,这样我们要是k个字符左旋,给一个for循环就ok了,画图解释如下:话不多说,上代码:#include<stdio.h>#include<string.h>void string原创 2021-06-05 23:27:33 · 405 阅读 · 8 评论 -
C语言有关指针的详解笔记
指针1.指针是什么2.指针和指针类型3.野指针4.指针运算5. 指针和数组6.二级指针7.指针数组1.指针是什么在计算机科学中,指针是编程语言中的一个对象,利用地址,他的值直接指向存在电脑存储器中另一个地方的值。由于通过地址能找到所需的变量单元,可以说,地址指向该变量单元。因此,将地址形象化的称为"指针"。意思是通过它能找到以它为地址的内存单元。内存如何使用内存呢?生活中,房子对应编号,编号-就为地址,将内存单元划分为一个一个格子,给每个格子编号1.一个内存单元该是多大的空间?原创 2021-04-08 23:05:13 · 1518 阅读 · 2 评论 -
C语言分支语句和循环语句笔记详解
分支语句和循环语句什么是语句?C语言中由一个分号;隔开的就是一条语句。比如:int main(){ int a=10; 10; ;//空语句 return 0;}C语言是结构化的程序设计语言1.顺序结构2.选择结构3.循环结构顺序结构就是从头到尾顺序执行,这里着重讲解选择和循环分支语句(选择结构)if语句如果你好好学习,校招时拿号offer,不好好学习,回家种红薯这就是选择。那if语句的语法结构是怎么样的呢?不得不提到一个问题,C语言是如何表原创 2021-04-09 23:40:22 · 1277 阅读 · 1 评论 -
指针的这些知识你知道吗?C语言超硬核指针进阶版3w+字详解+指针笔试题画图+文字详细讲解
指针的进阶文章目录指针的进阶字符指针指针数组数组指针数组指针的使用传统的方式访问二维数组利用数组指针来访问二维数组数组参数、指针参数一维数组传参二维数组传参一级指针传参二级指针传参函数指针—指向函数的指针函数指针函数调用C陷阱和缺陷中的两个代码函数指针数组实现一个计算器普通实现函数指针数组实现指向函数指针数组的指针回调函数qsort函数qsort函数对int型数组排序qsort对结构体排序模拟实现qsort函数指针和数组笔试题一维数组的sizeof和&的那些事字符数组与sizeof、&、s原创 2021-06-02 19:38:56 · 5576 阅读 · 57 评论 -
杨氏矩阵笔试题讲解
杨氏矩阵笔试题我们首先了解一下杨氏矩阵:杨氏矩阵。 矩阵的每行从左到右是递增的,每列从上到下是递增的。是对组合表示理论和舒伯特演算很有用的工具。它提供了一种方便的方式来描述对称和一般线性群的群表示,并研究它们的性质。杨氏矩阵是剑桥大学大学数学家阿尔弗雷德·扬在1900年提出。然后在1903年,它被用于格奥尔格·弗罗贝纽斯的对称群研究中。它的理论得益于许多数学家的贡献得到进一步发展,包括珀西·麦克马洪,W.V.D.霍奇,G.deB.罗宾逊,吉安·卡咯罗塔,阿兰拉斯克斯,马塞尔·保罗斯库森博格和理查德·P原创 2021-05-28 10:53:42 · 319 阅读 · 1 评论 -
C语言杨辉三角和“日本某地谋杀案”习题讲解
题目描述:在屏幕上打印杨辉三角。输入描述:4输出描述解题思路:规律:每个数等于它上方两数之和。第一列永远为1前两个数相加等于下面的数字#include<stdio.h>int main(){ char arr[20][20] = { 0 }; int i = 0; int j = 0; int n = 0; scanf("%d", &n); for (i = 1; i <= n; i++)原创 2021-05-26 16:01:37 · 488 阅读 · 7 评论 -
nice公司的一道笔试题讲解
nice公司的一道笔试题讲解#include <stdio.h>int main(){ int i = 0; int arr[] = {1,2,3,4,5,6,7,8,9,10}; for(i=0; i<=12; i++) { arr[i] = 0; printf("haha\n"); } return 0;}这段代码的运行结果是什么呢?运行后会进入死循环打印haha,数组明明越界了,为什么不报原创 2021-05-26 10:30:54 · 640 阅读 · 1 评论 -
深度剖析数据在内存中的存储之浮点型在内存中的存储
浮点型在内存中的存储浮点数家族包括:float、double、long double类型常见的浮点数:3.14159,1E10(1.0乘以10的10次方),1E5(1.0乘以10的5次方)整形家族:取值范围的定义:charshort 取值范围定义在limits.hint我们打开可以看到取值范围的定义文件整形家族:取值范围的定义:floatdouble 取值范围定义在float.h同样地,我们可以打开浮点型取值范围定义的文件来看一个代码#include&原创 2021-05-24 19:42:55 · 523 阅读 · 3 评论 -
深度剖析数据在内存中的存储之整形在内存中的存储、以及大小端介绍
深度剖析数据在内存中的存储文章目录深度剖析数据在内存中的存储数据类型介绍类型的基本归类整形在内存中的存储大小端介绍练习讲解数据类型介绍基本的内置类型char //字符数据类型short //短整型int //整形long //长整型long long //更长的整形float //单精度浮点数double //双精度浮点数类型的意义:1、使用这个类型开辟内存空间的大小(大小决定了使用范围)2、看待内存空间的视觉类型的基本归类整形原创 2021-05-24 19:30:35 · 702 阅读 · 0 评论 -
实用调试的技巧,VS编译器常用调试详解
实用调试技巧文章目录实用调试技巧什么是bug?调试是什么?有多重要?Debug和Release的介绍windows环境调试介绍一些调试的实例如何写出好的代码const什么是bug?调试是什么?重要吗?debug和release的介绍windows环境调试介绍一些调试实例如何写出好的代码const什么是bug?为马克2号(Harvard Mark II)编制程序的葛丽丝·霍波(Grace Hopper)是一位美国海军准将及计算机科学家,同时也是世界最早的一批程序设计师之一,有一天,她在原创 2021-05-16 23:27:56 · 487 阅读 · 1 评论 -
C语言strcpy、strlen的模拟实现
实现strcpy的模拟循环判断条件是*dest++ = *scr++,首先我们要知道,a=b这个表达式的值是a的值,我们将arr1中的每个字符赋值给arr2中时,其实整个表达式的值在每次循环时的值分别为’h’e’l’l’o’\0’字符的ASSIC码值,当我们把\0赋值到arr2中时,同时整个表达式的值也为0了,所以退出循环。#include<stdio.h>#include<assert.h>char* my_strcpy(char* dest, const char*原创 2021-05-21 16:45:20 · 356 阅读 · 0 评论 -
C语言打印菱形、喝汽水问题练习
打印菱形输入描述13输出描述#include<stdio.h>int main(){ int line = 0; printf("请输入要打印的行数:"); scanf("%d", &line); //打印上半行 line = (line + 1) / 2; int i = 0; int j = 0; for (i = 1; i <= line; i++) { for (j =原创 2021-05-21 11:17:45 · 427 阅读 · 1 评论 -
C语言有关移位操作符、位操作符的习题讲解
统计二进制中1的个数方法一求解思路:1.二进制中的每一位按位与1得到的结果该位数本身#include<stdio.h>int countone(int n){ int i = 0; int count = 0; for (i = 0; i < 32; i++) { if (((n >> i) & 1 )== 1) count++; } return count;}i原创 2021-05-21 09:05:30 · 376 阅读 · 2 评论 -
C语言水仙花数等练习
水仙花数打印出0-100000的水仙花数解题思路1.先求出n是几位数2.根据水仙花数概念判断是不是水仙花数#include<stdio.h>#include<math.h>int counti(i)//计算出位数{ int count = 0; while (i > 0) { i = i / 10; count++; } return count;}Isshuixianhua(i原创 2021-05-20 20:49:29 · 407 阅读 · 1 评论