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;
}

相关内容

热门资讯

安卓双系统添加应用,轻松实现多... 你有没有想过,你的安卓手机里可以同时运行两个系统呢?听起来是不是很酷?想象一边是熟悉的安卓系统,一边...
pipo安卓进系统慢,探究pi... 最近是不是发现你的Pipo安卓系统更新或者运行起来特别慢?别急,今天就来给你好好分析分析这个问题,让...
怎样使用安卓手机系统,安卓手机... 你有没有发现,安卓手机已经成为我们生活中不可或缺的一部分呢?从早晨闹钟响起,到晚上睡前刷剧,安卓手机...
双系统安卓安装caj,轻松实现... 你有没有想过,你的安卓手机里装上双系统,是不是就能同时享受安卓和Windows系统的乐趣呢?没错,这...
安卓使用ios系统教程,安卓用... 你是不是也和我一样,对安卓手机上的iOS系统充满了好奇?想要体验一下苹果的优雅和流畅?别急,今天我就...
安卓系统gps快速定位,畅享便... 你有没有遇到过这样的情况:手机里装了各种地图导航软件,但每次出门前都要等上好几分钟才能定位成功,急得...
安卓手机系统更新原理,原理与流... 你有没有发现,你的安卓手机最近是不是总在提醒你更新系统呢?别急,别急,让我来给你揭秘一下安卓手机系统...
安卓系统通知管理,全面解析与优... 你有没有发现,手机里的通知就像是一群调皮的小精灵,时不时地跳出来和你互动?没错,说的就是安卓系统的通...
安卓系统手机哪买,揭秘哪里购买... 你有没有想过,拥有一部安卓系统手机是多么酷的事情呢?想象你可以自由安装各种应用,不受限制地探索各种功...
安卓系统 ipv4,基于安卓系... 你知道吗?在智能手机的世界里,有一个系统可是无人不知、无人不晓,那就是安卓系统。而在这个庞大的安卓家...
目前安卓是什么系统,探索安卓系... 亲爱的读者,你是否曾好奇过,如今安卓系统究竟是什么模样?在这个科技飞速发展的时代,操作系统如同人体的...
安卓6.0系统比5.0,从5.... 你有没有发现,自从手机更新了安卓6.0系统,感觉整个人都清爽了不少呢?没错,今天咱们就来聊聊这个话题...
安卓2.36系统升级,功能革新... 你知道吗?最近安卓系统又来了一次大变身,那就是安卓2.36系统升级!这可不是一个小打小闹的更新,而是...
安卓系统源码怎么打开,并可能需... 你有没有想过,安卓系统的源码就像是一扇神秘的门,隐藏着无数的技术秘密?想要打开这扇门,你得掌握一些小...
安卓8.0系统体验视频,智能革... 你有没有听说安卓8.0系统最近可是火得一塌糊涂啊!作为一个紧跟科技潮流的数码达人,我当然要来给你好好...
宣传系统漫画app安卓,探索安... 亲爱的读者们,你是否曾在某个午后,百无聊赖地打开手机,想要寻找一些轻松愉悦的读物?今天,我要给你介绍...
鸿蒙替换安卓系统吗,开启智能生... 你知道吗?最近科技圈里可是炸开了锅,因为华为的新操作系统鸿蒙系统,据说要大举进军手机市场,替换掉安卓...
手机安卓系统深度清理,解锁手机... 手机里的东西是不是越来越多,感觉就像一个装满了杂物的储物柜?别急,今天就来教你一招——手机安卓系统深...
安卓上的windows系统,融... 你有没有想过,在安卓手机上也能体验到Windows系统的魅力呢?没错,这就是今天我要跟你分享的神奇故...
安卓系统焦点变化事件,Andr... 你知道吗?在安卓系统的世界里,最近发生了一件超级有趣的事情——焦点变化事件。这可不是什么小打小闹,它...