首页 > 其他分享 >practice

practice

时间:2024-09-26 20:25:25浏览次数:7  
标签:int max practice ++ pad 内存 数组

1、char s[] = “china”;

char *p;

p=s;

则下列叙述正确的是(D )。

A.s和p完全相同

B.数组s中的内容和指针变量p中的内容相等

C.s数组长度和p所指向的字符串长度相等

D.*p与s[0]相等

tips: D. *p与s[0]相等
解释:指针p指向数组s的第一个元素,因此*p(解引用指针p)和s[0](数组s的第一个元素)都是‘c’,所以它们是相等的。

A. s和p完全相同
解释:s是一个数组名,表示数组的起始地址,而p是一个指针变量。虽然它们指向同一内存位置,但它们的类型不同。s是一个数组类型,而p是一个指针类型,二者并不完全相同。

B. 数组s中的内容和指针变量p中的内容相等
解释:这个说法不准确,因为“内容”一词可能引起误解。虽然p指向s的起始地址,因此*p的内容等于s[0]的内容,但p本身并不存储数组的完整内容,而是指向数组的地址。

C. s数组长度和p所指向的字符串长度相等
解释:s数组的长度是固定的(在这个例子中是6,包括结束符‘\0’),而p是一个指针,它并不持有长度信息。虽然p指向的字符串“china”的长度(不包括结束符)是5,但p并没有存储这个长度信息。因此,这个说法是不准确的。


2、已知:int n, i=1, j=2; 执行语句 n=i<j ? i++ : j++; 则i和j的值是( C)。

A.1, 2

B.1, 3

C.2, 2

D.2, 3

tips:

要分析这段代码,首先执行条件判断 i < j。因为 1 < 2 为真,所以会执行 i++。此时,i 的值从 1 增加到 2,但表达式返回的是 1(执行前的值)。j 的值保持为 2。最终,i和 j 的值为 2 和 2,所以答案是 C. 2, 2。


3、链式栈与顺序栈相比,一个比较明显的优点是( B)。

A.插入操作更加方便

B.通常不会出现栈满的情况

C.不会出现栈空的情况

D.删除操作更加方便

tips:链式栈与顺序栈相比,一个比较明显的优点是 B. 通常不会出现栈满的情况。链式栈通过节点动态分配内存,不受固定大小限制.


4、下列哪些语句关于内存回收的说明是正确的(C )。

A.程序员必须创建一个线程来释放内存

B.内存回收程序负责释放无用内存

C.内存回收程序允许程序员直接释放内存

D.内存回收程序可以在指定的时间释放内存对象

tips:

A. 程序员必须创建一个线程来释放内存:错误。在 C 语言中,程序员并不需要创建线程来释放内存。内存的释放是通过调用 free 函数完成的,与线程无关。

B. 内存回收程序负责释放无用内存:部分正确,但不适用于 C 语言。C 语言没有内置的内存回收程序,程序员需要手动释放不再使用的内存。

C. 内存回收程序允许程序员直接释放内存:正确。在 C 语言中,程序员使用 free 函数手动释放之前分配的内存(例如使用 malloc、calloc 或 realloc),这相当于“直接释放内存”。

D. 内存回收程序可以在指定的时间释放内存对象:错误。C 语言没有自动内存回收机制,内存释放的时机完全由程序员控制,程序员不能指定特定时间来释放内存。


5、下面关于关键字的描述及使用中,错误的是( D)。

A.volatile可用于定义多线程应用中的共享变量

B.const可用于定义全局变量

C.一个变量既可以是 const,同时也是volatile

D.register static int i = 0

tips:

A. volatile可用于定义多线程应用中的共享变量:正确。volatile 关键字用于告诉编译器某个变量可能在程序的其他部分(如多线程环境)被异步修改,因此编译器不会优化对这个变量的访问,确保每次访问都从内存中读取其最新值。

B. const可用于定义全局变量:正确。const 关键字可以用于定义全局变量,这意味着该变量的值在定义后不能被修改。

C. 一个变量既可以是 const,同时也是 volatile:正确。在 C 和 C++ 中,一个变量可以同时被声明为 const 和 volatile。这表示变量的值不应该被修改(const),但可能在程序的其他地方(如中断处理程序或多线程环境)被改变(volatile)。

D. register static int i = 0:错误。register 和 static 不能同时用于同一个变量。register 表示希望将变量存储在寄存器中以提高访问速度,而 static 表示变量的生命周期为整个程序运行期间。两者的含义互相矛盾,因此不能同时使用。


6、在C语言中,如果下面的变量都是int类型,则输出结果是 7 。

sum = pad =5;

pad = sum++, pad++, ++pad;

printf(“%d\n”, pad);

tips:

初始化:sum = pad = 5;

这时 sum 和 pad 都是 5。
语句:pad = sum++, pad++, ++pad;

sum++:这个表达式的值是 5(因为是后缀递增),但 sum 会在此语句执行后增加到 6。
pad++:这个表达式的值也是 5,pad 会在此语句执行后增加到 6。
++pad:此时 pad 的值是 6,经过前缀递增后,pad 变为 7,表达式的值是 7。
在此语句执行后,pad 的最终值是 7,因为赋值是从右到左执行。

最后,执行 printf("%d\n", pad);,输出的是 pad 的当前值。
所以,输出结果是 7。


7、使用冒泡算法实现对一维数组A中的10个元素进行排序。

int sort(int *p,int n)
{
	int i,j;
	for(i=0; i<n-1; i++)
	{
		for(j=0; j<n-1-i; j++)
		{
			if(p[j]>p[j+1])
			{
				int temp;
				temp=p[j];
				p[j]=p[j+1];
				p[j+1]=temp;
			}
		}
	}
	return 0;
}
int main()
{
	int i;
	int buf[10]={10,7,98,2,963,9,815,74,56,589};
	sort(buf,10);
	for(i=0; i<10; i++)
		printf("排序之后: %d\n",buf[i]);
	return 0;
}


8、用户输入M、N值,从1至N开始顺序循环数数,每数到M的倍数输出该数值,自至全部输出。写出C程序

int main()
{
	int i,N,M;
	scanf("%d%d",&N,&M);
	for(i=1;i<=N;i++)
	{
		if(i%M==0)
		{
			printf("%d\n",i);
		}
	}
	return 0;
}


9、用C语言实现函数功能:找出一个整数数组中,第二大的数。

int find_sec_max(int data[], int count)
{
	int max = data[0];//max取数组的第一个元素
	int sec_max;//定义第二大的数
	for (int i = 1; i < count; i++)
	{
		if (data[i] > max)
		{
			sec_max = max;
			max = data[i];			
		}
		else
		{
			if (data[i] > sec_max)
			{
				sec_max = data[i];
			}
		}
	}
	return sec_max;
}

int main()
{
	int arr[] = {1,5,3,6,4,7,8,10};
	int secondnum = find_sec_max(arr,(sizeof(arr)/sizeof(arr[0])));
	printf("%d\n",secondnum);
	return 0;
}

标签:int,max,practice,++,pad,内存,数组
From: https://www.cnblogs.com/hhail08/p/18434257

相关文章

  • writing practice
    9/20correctedversionHelloguys,welcomebacktomychannel.I'mEthan. TodayisthethirddayI'vebeenpracticingmywritingskills.You'reprobablywonderingwhyIkeepwritingthesamethingeveryday.Thereasonis,bywritingthe......
  • 【优秀程序设计】【good-practice】聚合系统如何实现通道侧回调的业务结果通知?
    §.短信平台(聚合系统)的回调-业务说明我司短信平台聚合了朗宇、漫道、华信等多家短信服务商通道,并输出统一的接口能力供业务系统使用。本文以短信平台(sms)为例。来说一下各短信通道回调sms的代码实现。注:下文提到的”短信服务商“、”短信通道“、”通道“表示相同概念。  ......
  • 041 Time to Practice Dynamic Styling - Problem
    示例index.html<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"/><metaname="viewport"content="width=device-width,initial-scale=1.0"/><title>VueBa......
  • FINC3600 Finance in Practice S2 2024
    FINC3600 Financein PracticeS2 2024Project 1:Corporate Finance BriefProject LearningObjectivesBycompletingthisassignment,you will:Learn to apply corporate finance concepts and techniques from past finance courses in a realisti......
  • yolov5s ncnn practice
     Tutorial-deployYOLOv5withncnnhttps://github.com/Tencent/ncnn/discussions/4541 ncnnmodel制作(yolov5s.pt->ncnn.paramandncnn.bin) 使用ncnn库编译后生成的工具https://github.com/Tencent/ncnn/wiki/use-ncnn-with-pytorch-or-onnxhttps://ncnn.readt......
  • English speaking practice tools random video chat applications All In One
    EnglishspeakingpracticetoolsrandomvideochatapplicationsAllInOne英语口语练习工具随机视频聊天应用程序SpeakingPractice/SpokenEnglish/OralEnglishOmeTVDiscoverthethrillofrandomvideochatwithOmeTVhttps://ome.tv/???https://www.camgo.......
  • System to practice
    1、Linux中哪个系统调用可以用于设置一个定时器,当时间到时,发送一个信号给进程?(B)a)setitimer()b)alarm()c)timer_create()d)time()tips:timer_create()是一个用于创建定时器的系统调用函数,定义在POSIX标准中,属于Linux系统的时间管理功能。它用于创建一个定时器对象,并......
  • 中文翻译《ASPICE in practice》之“SUP.8 配置管理”
    2.16SUP.8配置管理2.16.1目的配置管理流程的目的是建立和维护流程或项目的所有工作产品的完整性,并将其提供给相关各方。 在配置管理(CM)的背景下,配置管理系统至关重要。我们指的是一个或多个CM工具的组合,以支持物理存储和处理以及相关规则,例如指令、流程和约定;后者例......
  • 中文翻译《ASPICE in practice》之“ACQ.4 供应商监控”
    仅供参考,欢迎指正!2.1ACQ.4供应商监控2.1.1目的供应商监控过程的目的是根据商定的要求监控供应商的绩效。除了讨论供应商监控之外,这个过程还涉及与供应商的合作和沟通。合作的基础是选择供应商并且客户与供应商之间存在合同协议。MAN过程和SUP过程中的方法可应用于......
  • Best practices for prompt engineering with the OpenAI API
    BestpracticesforpromptengineeringwiththeOpenAIAPIhttps://help.openai.com/en/articles/6654000-best-practices-for-prompt-engineering-with-the-openai-api HowpromptengineeringworksDuetothewayOpenAImodelsaretrained,therearespecificpr......