牛客网练习题

 https://www.nowcoder.com/test/question/done?tid=31568097&qid=77483#summary

分析:空串是指字符串里面没有内容,

           空格组成的串是指字符串里面是空格

题目链接: https://www.nowcoder.com/test/question/done?tid=31568097&qid=85431#summary

 分析:第一个元素没有前驱,最后一个元素没有后继

            线性表中可以没有元素——空表

            表中对元素的排序没有要求

 题目链接:https://www.nowcoder.com/test/question/done?tid=31568097&qid=166#summary

分析:串的逻辑结构和线性表很相似,不同之处在于串针对的是字符集,也就是串中的元素都是字符。对于串的基本操作与线性表是有很大的差别的。线性表更关注的是单个元素的操作,比如说查找一个元素,插入或者删除一个元素,但串中更多的是查找子串位置,得到指定子串,替换子串等操作。

题目链接:https://www.nowcoder.com/test/question/done?tid=31568097&qid=199#summary

广义表()和(())不同。前者是长度为0的空表,对其不能做求表头和表尾的运算;而后者是长度为l的非空表(只不过该表中惟一的一个元素是空表),对其可进行分解,得到的表头和表尾均是空表()

广义表Ls(()); Ls 的元素为1,head(Ls)为空,但是Ls不为空。

广义表Ls1();表示Ls1为空表。

 题目链接:https://www.nowcoder.com/test/question/done?tid=31568097&qid=55954#summary

分析:因为A是一个二维数组,因此A是指的是第一行

           A+1指的是行数加1

          *(A+1)指的是第二行的首元素

          *(A+1)+1是第二行的第二个元素的地址

          *(*(A+1)+1)第二行的第二个元素的地址里面所存储的内容

题目链接:https://www.nowcoder.com/test/question/done?tid=31568097&qid=168889#summary

 分析:

题目链接:https://www.nowcoder.com/test/question/done?tid=31568097&qid=7466#summary

分析:

A:相当于a[0]

B:以为数组的下标从0开始,所以10越界。

C:相当于a[0]

D:p和a指向同一个数组,p和a指的都是首元素的地址相减之后为零,因此是首元素。

 题目链接:https://www.nowcoder.com/test/question/done?tid=31570564&qid=97150#summary

分析:

由于下标从0开始,先计算偏移量,i*n+j,再乘以字节既是(i*n+j)*k,最后加上第一个数组元素的地址,所以是(i*n+j)*k+Loc(a[0][0]),选B。

这里要注意的是下标是从0开始的还是从1开始的,从1开始时,i,j都需要-1,从0开始时,不用减。

题目链接:https://www.nowcoder.com/test/question/done?tid=31570564&qid=1147#summary

分析:

这一题要区分,数组指针和指针数组。

int(*p)[10]是一个数组指针,p是一个指针指向 int[10] 数组, int* p[10], 是一个指针数组,p是一个数组,数组每个元素是个指向int型的指针。

题目链接:https://www.nowcoder.com/test/question/done?tid=31570564&qid=72243#summary

分析:\n     换行
\r     回车
\f     换页符
\b     退格
\0     空格
\s     字符串
\t     制表符

\”     双引号   第一个转义字符表示显示双引号

\’     单引号
\ddd     八进制字符串(ddd)
\uxxxx     16进制unicode字符串(xxxx)

题目链接:https://www.nowcoder.com/test/question/done?tid=31570564&qid=72214#summary

分析:

gets(str)能接收空格

scanf不能

题目链接:https://www.nowcoder.com/test/question/done?tid=31570564&qid=4679#summary

分析:

常用的线性结构有:线性表,堆栈,队列,双队列,数组,串。

常见的非线性结构有:二维数组,***数组,广义表,树(二叉树等),图。

题目链接:https://www.nowcoder.com/test/question/done?tid=31570564&qid=2588#summary

分析:

cin>>

该操作符是根据后面变量的类型读取数据。

输入结束条件 :遇到Enter、Space、Tab键。

对结束符的处理 :丢弃缓冲区中使得输入结束的结束符(Enter、Space、Tab)

### C语言输入输出练习题 #### 题目一:打印星号三角形 此程序接收一个整数 `n` 并打印由星号组成的直角三角形,每行的星号数量等于当前行数。 ```c #include<stdio.h> int main() { int n=0; while(~scanf("%d",&n)) { for(int i=0;i<n;i++) { for(int j=0;j<=i;j++) { printf("* "); } printf("\n"); } } return 0; } ``` 上述代码通过嵌套循环实现星号图案的打印[^1]。外层循环控制行数,内层循环负责在同一行中打印相应数量的星号。 #### 题目二:特殊格式化星号三角形 该程序同样接受一个整数 `n` ,并按照特定格式打印星号构成的图形,在每一行最后一个位置打印单个星号。 ```c #include<stdio.h> int main() { int n = 0; while (~scanf("%d", &n)) { int i = 0, j = 0; for (i = 1; i <= n; i++) { for (j = 1; j <= i; j++) { if (j != 1) { printf(" "); } if (i == j) { printf("*\n"); } } } } return 0; } ``` 这段代码展示了如何利用条件语句调整输出格式,使得最后一列与其他不同[^2]。 #### 题目三:字符串截取与复制 这个例子涉及从标准输入读入一段文本以及一个正整数 `m` 。随后将原串自第 `m` 位起至结尾部分拷贝到新字符数组中再显示出来。 ```c #include<iostream> #include<queue> using namespace std; int main() { char str[30] = { 0 }; cin.getline(str, sizeof(str)); int m; cin >> m; char copystr[30]={0}; char *p = str + m -1; char *q = copystr; while(*p != '\0') { *q = *p; p++; q++; } printf("%s",copystr); return 0; } ``` 这里运用指针操作完成子串提取工作,并且注意初始化目标缓冲区以防止潜在错误[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值