c语言 操作符详解例题 数据存储 指针初阶 水仙花数 杨辉三角 逆序字符串 喝汽水问题 打印图形 猜凶手

news2025/1/20 10:56:09

【题目名称】

下面代码的结果是:a

#include <stdio.h>
int i;
int main()
{
    i--;     sizeof'的返回值是无符号整型
    if (i > sizeof(i))  i四个字节所以是4。算出的结果类型是unsigned int
    无符号和有符号比较大小  会先把有符号整型转化为无符号。 -1放到内存里补码321
    {
        printf(">\n");
    }
    else
    {
        printf("<\n");
    }
    return 0; 
}

【题目内容】

A. >

B. <

C. 不输出

D. 程序有问题

全局变量会初始化为0


【题目名称】

关于表达式求值说法不正确的是:( d)

【题目内容】

A. 表达式求值先看是否存在整形提升或算术转换,再进行计算

B. 表达式真正计算的时候先看相邻操作符的优先级决定先算谁

C. 相邻操作符的优先级相同的情况下,看操作符的结合性决定计算顺序

D. 只要有了优先级和结合性,表达式就能求出唯一值


【题目名称】

计算求和

【题目内容】

求Sn=a+aa+aaa+aaaa+aaaaa的前5项之和,其中a是一个数字,

例如:2+22+222+2222+22222

//思路   前一项×10+2
int main()
{
	//有a组成的前n项之和 
	int a = 0;
	int n = 0;
	scanf("%d %d", &a, &n);
	int i = 0;
	int sum = 0;
	int ret = 0;//一项
	for (i = 0; i < n; i++)
	{
		//算出一项
		ret = ret * 10 + a;
		sum = sum + ret;
	}
	printf("%d\n", sum);



	return 0;
}

【题目名称】

使用指针打印数组内容

【题目内容】

写一个函数打印arr数组的内容,不使用数组下标,使用指针。

arr是一个整形一维数组。

int main()
{
	int arr[] = { 1,2,3,4,5,6,7,8,9,10 };
	int* p = arr;
	int i = 0;
	int  sz = 0;
	sz = sizeof(arr) / sizeof(arr[0]);
	for (i = 0; i < sz; i++)
	{

		printf("%d", *(p+i));

	}//p+i 拿到下表为i的地址   *()拿到元素


	return 0;
}

在这里插入图片描述


【题目名称】

打印水仙花数

【题目内容】

求出0~100000之间的所有“水仙花数”并输出。

“水仙花数”是指一个n位数,其各位数字的n次方之和确好等于该数本身,如:153=13+53+3^3,则153是一个“水仙花数”。

#include <math.h>
int main()
{
	
	int i = 0;
	for (i = 0; i <= 10000; i++)
	{//1计算i的位数  n
		int n = 1;
		int tmp = i;

		while (tmp / 10)
		{
			n++;
			tmp = tmp / 10;
		}
		//2计算i每一位的n次方之和
		tmp = i;
		int sum = 0;
		while (tmp)
		{
			sum += pow(tmp % 10, n);
				tmp =tmp/ 10;
		}
		//判断
		if (sum == i)
		{

			printf("%d ", i);
		}

	}
	

	return 0;
}

指针

【题目名称】

下列程序段的输出结果为( c )

unsigned long pulArray[] = {6,7,8,9,10};
unsigned long *pulPtr;
pulPtr = pulArray;
*(pulPtr + 3) += 3; **元素+= 3**
printf(%d,%d\n”,*pulPtr, *(pulPtr + 3));

【题目内容】

A. 9,12

B. 6,9

C. 6,12

D. 6,10

**unsigned long这个类型 +1直接跳过一个元素 **


【题目名称】

如有以下代码:

struct student
{
  int num;
  char name[32];
  float score;
}stu;

**stu是结构体变量名 拿struct student定义的 **

则下面的叙述不正确的是:( d)

【题目内容】

A. struct 是结构体类型的关键字

B. struct student 是用户定义的结构体类型

C. num, score 都是结构体成员名

D. stu 是用户定义的结构体类型名 变量名


【题目名称】

下面程序的输出结果是:( c )

struct stu
{
    int num;
    char name[10];
    int age;
};


void fun(struct stu *p)
{
	printf(%s\n”,(*p).name);
	return;
}


int main()
{
	struct stu students[3] = {{9801,”zhang”,20},
							  {9802,”wang”,19},
                              {9803,”zhao”,18}
                             };
    fun(students + 1);
	return 0;
}

【题目内容】

A. zhang

B. zhao

C. wang

D. 18


【题目名称】

结构体访问成员的操作符不包含:( d )

【题目内容】

A. . 操作符

B. -> 操作符

C. * 解引用操作符

D. sizeof


【题目名称】

关于二级指针描述描述正确的是:( b)

【题目内容】

A. 二级指针也是指针,只不过比一级指针更大

B. 二级指针也是指针,是用来保存一级指针的地址

C. 二级指针是用来存放数组的地址

D. 二级指针的大小是4个字节


【题目名称】

下面关于指针运算说法正确的是:(c )

【题目内容】

A. 整形指针+1,向后偏移一个字节

B. 指针-指针得到是指针和指针之间的字节个数 元素个数

C. 整形指针解引用操作访问4个字节

D. 指针不能比较大小


【题目名称】

下面哪个是指针数组:(a )

【题目内容】

A. int* arr[10];

B. int * arr[];

C. int **arr;

D. int (*arr)[10]; //数组指针


【题目名称】

下面程序要求输出结构体中成员a的数据,以下不能填入横线处的内容是( )

#include < stdio.h >
struct S
{ 
  int a;
  int b; 
};
int main( )
{ 
  struct S a, *p=&a;
  a.a = 99;
  printf( "%d\n", __________);
  return 0;
}

【题目内容】

A. a.a

B. p.a **。的优先级高于的优先级**

C. p->a

D. (*p).a


【题目名称】

字符串逆序

【题目内容】

写一个函数,可以逆序一个字符串的内容。

#include <assert.h>
void nixu1(char* str)
{
	assert(str != NULL);
	
	int len = strlen(str);
	char* left = str;
	char* right = str+len-1;
	while (left < right)
	{
		char tmp = *left;
		*left = *right;
		*right = tmp;
		left++;
		right--;
	}
	
}

int main()
{

	char arr[] = "abcde";
	

	nixu1(arr);
	printf("%s",arr );
	
	return 0;
}

【题目名称】

打印菱形

【题目内容】

用C语言在屏幕上输出以下图案:

在这里插入图片描述
分为上下两部分 中间的定义7 用line

int main()
{
	//上面
	int line = 0;
	scanf("%d", &line);
	int i = 0;
	for (i = 0; i < line; i++)
	{
		//第一行
		//空格
		int j = 0;
		for (j = 0; j < line - 1 - i; j++)
		{
			printf(" ");
		}
		//*

		for (j = 0; j < 2 * i + 1; j++)
		{
			printf("*");
		}
		printf("\n");
	}




	//下面

	for (i = 0; i < line; i++)
	{

		//空格
		int j = 0;
		for (j = 0; j <= i; j++)
		{
			printf(" ");
		}
		//*   2×几减去1

		for (j = 0; j < 2 * (line - 1 - i); j++)
		{
			printf("*");
		}
		printf("\n");
	}



【题目名称】

喝汽水问题

【题目内容】

喝汽水,1瓶汽水1元,2个空瓶可以换一瓶汽水,给20元,可以多少汽水(编程实现)。

在这里插入图片描述

int main()
{
	int money = 0;
	int total = 0;
	scanf("%d", &money);//有多少钱  每次和汽水的数量是2×钱数减去1
	if(money>0)
	 total = 2 * money - 1;


	printf("%d\n", total);


	return 0;
}

第一种更好

//int main()
//{
//	int money = 0;
//	scanf("%d", &money);//有多少钱
//	int total = money;//能喝多少瓶
//	int empty = money;
//	//开始置换
//	while (empty >= 2)
//	{
//		total += empty / 2;
//			empty = empty / 2 + empty%2;//  除2是喝了的 模2是剩余的
//
//	}
//	printf("%d\n", total);
//
//
//	return 0;
//}

调试习题

【题目名称】

C程序常见的错误分类不包含:( c)

【题目内容】

A. 编译错误

B. 链接错误

C. 栈溢出 运行时错误

D. 运行时错误


【题目名称】

关于VS调试快捷键说法错误的是:( a)

【题目内容】

A. F5-是开始执行,不调试 开始调试

B. F10-是逐过程调试,遇到函数不进入函数

C. F11-是逐语句调试,可以观察调试的每个细节

D. F9是设置断点和取消断点


【题目名称】

关于Debug和Release的区别说法错误的是:(d )

【题目内容】

A. Debug被称为调试版本,程序调试找bug的版本

B. Release被称为发布版本,测试人员测试的就是Release版本

C. Debug版本包含调试信息,不做优化。

D. Release版本也可以调试,只是往往会优化,程序大小和运行速度上效果最优


【题目名称】

语言中哪一种形式声明了一个指向char类型变量的指针p,p的值不可修改,但p指向的变量值可修改?( c)

【题目内容】

A. const char *p

B. char const *p

C. char*const p

D. const char *const p


【题目名称】

以下关于指针的说法,正确的是( c)

【题目内容】

A. int *const p与int const *p等价

B. const int *p与int *const p等价

C. const int *p与int const *p等价

D. int *p[10]与int (*p)[10]等价 指针数组和数组指针


【题目名称】

调整奇数偶数顺序

【题目内容】

调整数组使奇数全部都位于偶数前面。

题目:

输入一个整数数组,实现一个函数,

来调整该数组中数字的顺序使得数组中所有的奇数位于数组的前半部分,

所有偶数位于数组的后半部分。

void move (int arr[], int sz)
{
	int left = 0;
	int right = sz - 1;
	while (left < right)//因为有这个条件能再往下找
	{
		//从前往后找一个偶数
		while ((left < right)&&(arr[left] % 2 == 1))
		{
			left++;
		}
		//从后往前找一个奇数
		while ((left < right)&&(arr[right] % 2 == 0))
		{
			right--;

		}
		if (left < right) //有这个条件才交换
		{
			int tmp = arr[left];
			arr[left] = arr[right];
			arr[right] = tmp;
		}
	}
}


void print(int arr[], int sz)
{
	int i = 0;
	for (i = 0; i < sz; i++)
	{
		printf("%d",arr[i]);

	}

}
int main()
{
	int arr[] = { 1,2,3,4,5,6,7,8,9,10 };
	int sz = sizeof(arr) / sizeof(arr[0]);


	move(arr,sz);
	print(arr, sz);

	return 0;
}

数据存储

【题目名称】

原码、反码、补码说法错误的是( d )

【题目内容】

A. 一个数的原码是这个数直接转换成二进制

B. 反码是原码的二进制符号位不变,其他位按位取反

C. 补码是反码的二进制加1

D. 原码、反码、补码的最高位是0表示负数,最高位是1表示正数


【题目名称】

程序的执行结果为( )

int main()
{
  unsigned char a = 200;  //0-255
  00000000000000000000000011001000    200的二进制序列  char类型8个比特位
  11001000
  unsigned char b = 100;
  00000000000000000000000001100100
  01100100
  unsigned char c = 0;
  c = a + b;//这两个相加 两个的大小都没达到整形的大小 所以需要整型提升  无符号为整型提升高位补0
  0000000000000000000000011001000
  0000000000000000000000001100100
  0000000000000000000000100101100   a+b的结果  存到c存不下只存了80010110


打印c  0010110 整型提升 无符号高位补0
   000000000000000000000000010110
   %d打印是以有符号存的  原码正数原反补相同  10110  等于44
   100101100  a+b  是300
  printf(%d %d”, a+b,c);      
  return 0;
}

【题目内容】

A. 300 300

B. 44 44

C. 300 44

D. 44 300


【题目名称】

unsigned int a= 0x1234;        整形这样放0x 00 00 12  34
unsigned char b=*(unsigned char *)&a;

在32位大端模式处理器上变量b等于(a )

【题目内容】

A. 0x00

B. 0x12

C. 0x34

D. 0x1234
在这里插入图片描述


【题目名称】

关于大小端字节序的描述正确的是( b)

【题目内容】

A. 大小端字节序指的是数据在电脑上存储的二进制位顺序 字节

B. 大小端字节序指的是数据在电脑上存储的字节顺序

C. 大端字节序是把数据的高字节内容存放到高地址,低字节内容存放在低地址处

D. 小端字节序是把数据的高字节内容存放到低地址,低字节内容存放在高地址处


【题目名称】

杨辉三角

【题目内容】

在屏幕上打印杨辉三角。

1

1 1

1 2 1

1 3 3 1

……

思路
在这里插入图片描述

int main()
{
	int arr[10][10] = { 0 };
	int i = 0;
	int j = 0;
	for (i = 0; i < 10; i++)
	{
		for (j = 0; j <= i; j++)
		{
			if (j == 0)
			{
				arr[i][j] = 1;
			}
			if (i == j)
			{
				arr[i][j] = 1;

			}
			if (i >= 2 && j >= 1)
			{
				arr[i][j] = arr[i - 1][j - 1] + arr[i - 1][j];
			}


		}
	}

	for (i = 0; i < 10; i++)
	{
		for (j = 0; j <= i; j++)
		{
			printf("%d", arr[i][j]);
		}
		printf("\n");



		return 0;
	}
}

【题目名称】

猜凶手

【题目内容】

日本某地发生了一件谋杀案,警察通过排查确定杀人凶手必为4个嫌疑犯的一个。

以下为4个嫌疑犯的供词:

A说:不是我。

B说:是C。

C说:是D。

D说:C在胡说

已知3个人说了真话,1个人说的是假话。

现在请根据这些信息,写一个程序来确定到底谁是凶手。

第3题(编程题)
我的解答

在这里插入图片描述

int main()
{
	char killer = 0;
	for (killer = 'A'; killer <= 'D'; killer++)
	{
		if ((killer != 'A') + (killer == 'C') + (killer == 'D') + (killer != 'D') == 3)
		{
			printf("%c", killer);
		}
	}

	return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/106001.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

浏览器底部导航栏遮盖问题

欧吼&#xff0c;算是遇到两次了这种问题。每次解决完都觉得很无语&#x1f92e; 先看问题如图&#xff08;怕公司说我泄露他们啥信息&#xff0c;于是打了非常离谱且难看的马赛克&#x1f60a;&#xff09;&#xff1a; 本来要在底部导航栏上方展示底部信息。 电脑上看倒是好…

怎样设计产品帮助中心?以下几点不可忽视

在日常产品的使用过程中&#xff0c;我们经常会遇到一些关于产品的使用相关问题&#xff0c;此时我们会去翻阅产品的说明书&#xff0c;而对于线上的产品来说&#xff0c;一般都会搭配对应的帮助文档&#xff0c;帮助文档可以提供关于用户在使用过程中遇到的各种问题的解答&…

【再学Tensorflow2】TensorFlow2的建模流程:Titanic生存预测

TensorFlow2的建模流程1. 使用Tensorflow实现神经网络模型的一般流程2. Titanic生存预测问题2.1 数据准备2.2 定义模型2.3 训练模型2.4 模型评估2.5 使用模型2.6 保存模型参考资料在机器学习和深度学习领域&#xff0c;通常使用TensorFlow来实现机器学习模型&#xff0c;尤其常…

03Python算数运算符及变量基本使用

算数运算符 算数运算符 是完成基本的算术运算使用的符号&#xff0c;用来处理四则运算 运算符描述实例加10 20 30-减10 - 20 -10*乘10 * 20 200/除10 / 20 0.5//取整除返回除法的整数部分&#xff08;商&#xff09; 9 // 2 输出结果 4%取余数返回除法的余数 9 % 2 1*…

干货 | 云原生时代的灰度发布有几种“姿势”?

随着企业数字化转型进程不断发展&#xff0c;云原生时代的来临&#xff0c;企业应用越来越多&#xff0c;不得不面对应用程序升级的巨大挑战。传统的停机发布方式&#xff0c;新旧版本应用切换少则停机30分钟&#xff0c;多则停机10小时以上&#xff0c;愈发无法满足业务端的需…

java入门及环境配置

java三大版本 JavaSE: 标准版&#xff08;桌面程序&#xff0c;控制台开发........) JavaEE: 嵌入式开发&#xff08;手机&#xff0c;小家电.....&#xff09; JavaEE: E企业级开发&#xff08;web端&#xff0c;服务器开发...&#xff09; JDK、JRE、JVM: Java安装开发环境&a…

信息化时代企业数据防泄露工作该怎么做

场景描述 信息化时代发展迅速&#xff0c;数据防泄露一词也频繁的出现在我们身边。无论企业或政府单位&#xff0c;无纸化办公场景越来越多&#xff0c;数据泄露的时间也层出不穷。例如&#xff1a;世界最大职业中介网站Monster遭到黑客大规模攻击&#xff0c;黑客窃取在网站注…

计算机毕设Python+Vue药品销售平台(程序+LW+部署)

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

模板二(基础算法)

目录 快速排序 归并排序 二分 整数二分 浮点数二分 前缀和 一维前缀和 二维前缀和 差分 一维差分 二维差分 双指针 位运算 离散化 区间合并 快速排序 方法一&#xff1a;定义两个新数组&#xff0c;a[ ],b[ ],每次将大于x的放到a中&#xff0c;小于x的放到b中&…

【矩阵论】6.范数理论——范数估计——许尔估计谱估计

6.3 许尔估计 任意方阵 A(aij)nnA(a_{ij})_{n\times n}A(aij​)nn​ &#xff0c;全体根 λ(A){λ1,⋯,λn}\lambda(A)\{\lambda_1,\cdots,\lambda_n\}λ(A){λ1​,⋯,λn​} &#xff0c;满足 ∣λ1∣2⋯∣λn∣2≤∑∣aij∣2\vert \lambda_1\vert^2\cdots\vert \lambda_n\ve…

数据存储格式

文章目录数据存储格式1 行列存储比较2 ORC文件格式2.1 文件级2.1.1 Post scripts2.1.2 File Footer2.1.3 File MetaData2.2 Stripe级2.2.1 Stripe Footer2.2.2 Row Data2.2.3 Index Data3 Parquet文件格式3.1 Header3.2 Data3.2.1 Row Group3.2.2 Column Chunk3.2.3 Page3.3 Fo…

正则表达式判断数字

判断 正负整数,正负小数 表达式: ^[-]?([0]{1,1}|[1-9]{1,1}[0-9]*?)[.]?[\\d]{1,}$ import java.util.Scanner; import java.util.regex.Pattern; public static void main(String[] args) { Pattern pattern Pattern.compile("^[-]?([0]{1,1}|[1-9]{1,1}…

3dtiles数据解析

1.解析json文件 2.解析b3dm模型 (1)b3dm模型文件时二进制文件&#xff0c;其中包含glTF文件&#xff1a; 当使用tiny_gltf库解析glTF时&#xff0c;需要减去(28byte featuretable的byte batchTable的byte ): bool TinyGLTF::ExtractGltfFromMemory(Model *model,std::string…

JVM - 内存区域划分 类加载机制 垃圾回收机制

目录 1. 内存区域划分 2. 类加载 2.1 双亲委派模型 3. 垃圾回收机制 (GC) 3.1 如何判断一个对象是否为 "垃圾" 3.1 可达性分析 3.2 垃圾回收算法 1. 内存区域划分 JVM 作本质上是一个 Java 进程, 它启动的时候, 就会从操作系统申请一大块内存, 并且把这一大块…

CSS学习(七):盒子模型,圆角边框,盒子阴影和文字阴影

原文链接&#xff1a;CSS学习&#xff08;七&#xff09;&#xff1a;盒子模型&#xff0c;圆角边框&#xff0c;盒子阴影和文字阴影 1. 盒子模型 页面布局要学习三大核心&#xff1a;盒子模型&#xff0c;浮动和定位。学习好盒子模型能非常好的帮助我们页面布局。 1.1 看透…

肽基脯氨酰异构酶底物:1926163-51-0,WFY-pSer-PR-AMC

WFYpSPR-AMC, Pin1底物类似显色底物H- trp - phi - tir - ser (PO₃H₂)-Pro-Arg-pNA。 磷酸肽在生命过程中发挥重要作用&#xff0c;磷酸化的位置在多肽上的Tyr、Ser&#xff0c;Thr&#xff0c;。目前磷酸肽合成一般都采用磷酸化氨基酸&#xff0c;目前使用的都是单苄基磷酸化…

Kafka Producer - 分区机制实战

Kafka Producer - 分区机制实战 上一篇介绍了kafka Producer 生产者发送数据的程序代码&#xff0c;以及对生产者分区机制的相关介绍&#xff0c;今天继续深入的了解下分区机制的原理、测试验证、自定义分区。 在学习之前先在本地机器搭建一个单机版的双节点集群环境&#xf…

80.【Spring5】

Spring《解耦》(一)、Spring 简介1.历史:2.Spring 目的3.Spring 引入4.优点5.Spring 七大模块组成:6.扩展&#xff08;约定大于配置&#xff09;(二)、IOC理论推导(Inversion of Contro)1.以前的三层分级2.现在对三层架构的更新3.什么是IOC(三)、HelloSpring1.怎么使用Spring?…

技术分享 | 缓存穿透 - Redis Module 之布隆过滤器

作者&#xff1a;贲绍华 爱可生研发中心工程师&#xff0c;负责项目的需求与维护工作。其他身份&#xff1a;柯基铲屎官。 本文来源&#xff1a;原创投稿 *爱可生开源社区出品&#xff0c;原创内容未经授权不得随意使用&#xff0c;转载请联系小编并注明来源。 一、场景案例 假…

设计模式-抽象工厂模式

1、什么是抽象工厂模式 抽象工厂&#xff08;AbstractFactory&#xff09;模式的定义&#xff1a;是一种为访问类提供一个创建一组相关或相互依赖对象的接口&#xff0c;且访问类无须指定所要产品的具体类就能得到同族的不同等级的产品的模式结构。抽象工厂模式是工厂方法模式的…