c语言 操作符详解例题 数据存储 指针初阶 水仙花数 杨辉三角 逆序字符串 喝汽水问题 打印图形 猜凶手
创始人
2024-04-27 17:52:20
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;
}

相关内容

热门资讯

喜欢穿一身黑的男生性格(喜欢穿... 今天百科达人给各位分享喜欢穿一身黑的男生性格的知识,其中也会对喜欢穿一身黑衣服的男人人好相处吗进行解...
发春是什么意思(思春和发春是什... 本篇文章极速百科给大家谈谈发春是什么意思,以及思春和发春是什么意思对应的知识点,希望对各位有所帮助,...
网络用语zl是什么意思(zl是... 今天给各位分享网络用语zl是什么意思的知识,其中也会对zl是啥意思是什么网络用语进行解释,如果能碰巧...
为什么酷狗音乐自己唱的歌不能下... 本篇文章极速百科小编给大家谈谈为什么酷狗音乐自己唱的歌不能下载到本地?,以及为什么酷狗下载的歌曲不是...
家里可以做假山养金鱼吗(假山能... 今天百科达人给各位分享家里可以做假山养金鱼吗的知识,其中也会对假山能放鱼缸里吗进行解释,如果能碰巧解...
华为下载未安装的文件去哪找(华... 今天百科达人给各位分享华为下载未安装的文件去哪找的知识,其中也会对华为下载未安装的文件去哪找到进行解...
四分五裂是什么生肖什么动物(四... 本篇文章极速百科小编给大家谈谈四分五裂是什么生肖什么动物,以及四分五裂打一生肖是什么对应的知识点,希...
怎么往应用助手里添加应用(应用... 今天百科达人给各位分享怎么往应用助手里添加应用的知识,其中也会对应用助手怎么添加微信进行解释,如果能...
客厅放八骏马摆件可以吗(家里摆... 今天给各位分享客厅放八骏马摆件可以吗的知识,其中也会对家里摆八骏马摆件好吗进行解释,如果能碰巧解决你...
苏州离哪个飞机场近(苏州离哪个... 本篇文章极速百科小编给大家谈谈苏州离哪个飞机场近,以及苏州离哪个飞机场近点对应的知识点,希望对各位有...