c语言 操作符详解例题 数据存储 指针初阶 水仙花数 杨辉三角 逆序字符串 喝汽水问题 打印图形 猜凶手
创始人
2024-04-27 17:15:08
0

【题目名称】

下面代码的结果是:a

#include 
int i;
int main()
{i--;     sizeof'的返回值是无符号整型if (i > sizeof(i))  i四个字节所以是4。算出的结果类型是unsigned int无符号和有符号比较大小  会先把有符号整型转化为无符号。 -1放到内存里补码32个1{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 
int main()
{int i = 0;for (i = 0; i <= 10000; i++){//1计算i的位数  nint 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 
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×几减去1for (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×钱数减去1if(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-25500000000000000000000000011001000    200的二进制序列  char类型8个比特位11001000unsigned char b = 100;0000000000000000000000000110010001100100unsigned char c = 0;c = a + b;//这两个相加 两个的大小都没达到整形的大小 所以需要整型提升  无符号为整型提升高位补0000000000000000000000001100100000000000000000000000000011001000000000000000000000000100101100   a+b的结果  存到c存不下只存了8位0010110打印c  0010110 整型提升 无符号高位补0000000000000000000000000010110%d打印是以有符号存的  原码正数原反补相同  10110  等于44100101100  a+b  是300printf(“%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;
}

相关内容

热门资讯

安卓如何操控苹果系统,揭秘跨平... 你知道吗?在这个科技飞速发展的时代,安卓和苹果两大操作系统之间的较量可是从未停歇。虽然它们各自有着忠...
安卓系统账户同步数据,畅享无缝... 你有没有遇到过这种情况:手机里存了那么多宝贝照片、重要文件,结果换了个新手机,却发现那些宝贝全都不翼...
安卓系统不停推送广告,安卓系统... 你有没有发现,最近你的安卓手机是不是越来越“热情”了?没错,就是那个不停在你屏幕上跳来跳去的广告!今...
airpods可以和安卓系统,... 你有没有想过,那些炫酷的AirPods竟然也能和安卓手机完美搭配?没错,就是那个我们平时只听说和iP...
安卓系统实体键盘不对,创新与挑... 你是不是也遇到了这个问题?安卓手机的实体键盘突然不对劲了,按下去没反应,或者反应迟钝,简直让人抓狂!...
汽车导航改装安卓系统,安卓系统... 你有没有想过,你的汽车导航系统是不是已经out了?现在,让我来给你揭秘如何给你的爱车来一次科技大变身...
安卓系统如何限制下载,安卓系统... 你有没有发现,手机里的安卓系统越来越智能了?不过,这也意味着有时候我们不小心就会下载一些不想要的软件...
安卓系统调成日语,概要の副標題... 你有没有想过,你的安卓手机竟然可以变成一个日式小天地呢?没错,就是那种动漫里常见的日语界面,是不是听...
男生耳机推荐安卓系统,男生耳机... 耳机可是现代生活中不可或缺的小玩意儿,尤其是对于喜欢听音乐的男生来说,一副好耳机简直就是灵魂的伴侣。...
安卓同版本升级系统,功能优化与... 你知道吗?最近手机界可是热闹非凡呢!各大品牌纷纷推出了安卓同版本升级系统,让我们的手机焕然一新。今天...
安卓更换别的手机系统,轻松切换... 你有没有想过,你的安卓手机用久了,是不是有点审美疲劳了呢?或者,你最近是不是对其他手机系统产生了浓厚...
安卓系统单机神雕侠侣,指尖重温 你有没有想过,在手机上也能体验一把江湖恩怨、侠骨柔肠?没错,就是那个让人心驰神往的《神雕侠侣》!今天...
安卓系统键盘语言切换,安卓系统... 你有没有发现,手机上的安卓系统键盘语言切换功能,简直就像是个神奇的魔法棒,轻轻一点,就能让文字飞舞在...
oppok1安卓系统,性能与体... 你有没有发现,最近手机圈里又掀起了一股热潮?没错,就是OPPO K1这款新机!这款手机不仅外观时尚,...
安卓系统环境的搭建,从零开始构... 想要在电脑上体验安卓系统的魅力,是不是已经跃跃欲试了呢?别急,今天就来手把手教你如何搭建一个属于自己...
【MySQL】锁 锁 文章目录锁全局锁表级锁表锁元数据锁(MDL)意向锁AUTO-INC锁...
【内网安全】 隧道搭建穿透上线... 文章目录内网穿透-Ngrok-入门-上线1、服务端配置:2、客户端连接服务端ÿ...
GCN的几种模型复现笔记 引言 本篇笔记紧接上文,主要是上一篇看写了快2w字,再去接入代码感觉有点...
数据分页展示逻辑 import java.util.Arrays;import java.util.List;impo...
Redis为什么选择单线程?R... 目录专栏导读一、Redis版本迭代二、Redis4.0之前为什么一直采用单线程?三、R...