15+5的 一天一夜的 薄纱体验

2022招新选择
1. 中英文状态下的分号“l;” , “l;”不同
2.i++和++i的区别.
3. 请选择下面语句的正确输出结果()
      int x = (1+2,5+7,3+4,7+8);
逗号表达式的作用:
表达式1,表达式2...表达式n;  整个逗号表达式的值是(表达式n)的值。
所以x的值为7+8=15.
同时,要注意 优先级问题。
int x = 1+2 ,5+7,3+4,7+8;//x=3//
int x = (1+2,5+7,3+4, 7+8 );//赋值的优先级>逗号运算符,所以x=15//
4.语句int i=1;while(i++<10);执行后,变量i的值为
所以i=10时,可以再执行一次自加,i=11
while中的  自加 和  比较。
while(++i)和while(i++)的别在于:
1,循环体的循环次数不同,while(++i)偱环i次;while(i++)循环i+1次
2,循环完后,不的值不同while(++i)执行完后, i=0;while(i++)执行完后 ,i=1;
因为在while终止时括号内的逻辑值为0;而i++在循体结束后又执行了一次加1运算;
最大的区别是 当 i 为 0 的时候
while(++i) 被执行
while(i++) 不能被执行
5.二维数组 可以省略行下标, 不能省略列下标
正解:int k[ ][10]={0};
6. 数组下标中的运算
int a[3];
a[0] = 0; a[1] = 1; a[2] = 2;
int *p, *q;
p = a;
q = &a[2];
则a[q - p] =a[2]=2
q-p=(地址q-地址p)/(sizeof(int))=2

7.字符数组保存字符串,有结尾字符‘/0’长度往往比单纯的字符多1个 

8.作用域。static变量不会自动恢复(与auto区分)

前方高能!!!

int m=10;

const int n=20;

 先说一下const对指针的影响。

①const int*p,指向const的指针,方向可变,值不可变;

              → 普通指针 int *ptr3 = &n; // 错误,常量的地址不能初始化普通指针("const int*”类型的值不能用于初始化"int*”类型的实体),常量地址只能赋值给常量指针

              → 只能把非const的数据地址赋给普通指针,否则通过指针就可改变const的值

                const int * ptr4 = &n; // 正确,常量地址初始化常量指针

与其他两个不同的是,由于方向可变,定义和初始化可以分头行动

②int*const p,指针常量,方向不可变,值可变;

规则:个人理解+实操;定义的同时初始化,不可以分开

√:int*const p=&m

×:int* const p;  p=&m//err

int *const p=&n;//err const int*”类型的值不能用于初始化“int *const”类型。说人话是,此时的指针值可以改变。而n是const常量,不可改变。所以错误

③const int *const p,只读,既不能改变方向,也不能改变值得大小。

规则:定义的同时初始化,不可以分开

int main() {
int m = 10;
const int n = 20;
/*---------------------------------------------------------------------------*/
const int *ptr1 = &m;
int * const ptr2 = &m;
*ptr1 = 3;//不可改变大小,第一处
ptr2 = &n;//不可改变方向,第二处
int *ptr3 = &n;// const不能赋给普通指针,第三处
const int * ptr4 = &n;
int * const ptr5;//排除法得出的第七处
ptr5 = &m;// int*const p定义的同时初始化,第四处
const int * const ptr6 = &m;
*ptr6 = 5;//第五处
ptr6 = &n;//第六处
const int * ptr7;
ptr7 = &m;
/*---------------------------------------------------------------------------*/
return 0;
13.
关于下面程序的输出结果中,正确的是()
#include <stdio.h>
#include <string.h>
int main()
{
int i,j;
int src_len;
int new_len;
char src_str[100]="123456789";
char new_str[]="abcd";
int addr=2;
src_len=strlen(src_str);//9, strlen取得是实际长度,不考虑'/0'
new_len=strlen(new_str);4
for(i=src_len-1;i>addr-1;i--)
{
src_str[i+new_len]=src_str[i];// 数组下标从0开始,最容易忽略
}
for(i=0;i<new_len;i++)src_str[addr+i]=new_str[i];
src_str[src_len+new_len]='\0'; //在字符串结尾添加'\0'
printf("src_str=%s\n",src_str);
return 0;
}
A src_str=12 abcd 3456789
B src_str=123abcd456789
C src_str=1abcd23456789
D src_str=1234abcd56789

 填空部分

1.  指针传递

int fun( int *x ,int n ) {
if (n == 0) return *(x + 1);
else {
*x += fun(x + 1, n - 1);
return *x;
}// 指针传递 数组a已经重组a[]={13,8,4,2,1}
int main( )
{
int a[] = { 5,4,3,2,1 }, * p[] = { a + 3,a + 2,a + 1,a }, ** q = p;
fun( a , 3);
printf("%d\n", *(p[1] + 1));// &a[3]=2
这里还有个误区。
p[]是指针数组,储存着a[]的地址。
√:( p[1] + 1)=&a[2]+1=a[3]=2;
×:( p[1] + 1)=p[2]        思路和操作都是错的
√:  ( q[1]+ 1 )=&p[2]=&(&a[1])
printf("%d\n", **(q + 3));// q[3]=&a[0]=13
printf("%d", *(p[1] + 1) + **(q + 3));//15
return 0;
}

2 .scanf格式控制中,*%d使当前输入不被赋予相应变量

③*%d%d%d。*之后的所有赋值失效(a=0,b=0,c=0;输入1 2 3)

1.*%d%d%d→0 0 0

2.%d*%d%d

3.%d%d*%d

①%*d,忽略本身;
scanf("%d%*d%d",&a,&b,&c);
printf("a=%d,b=%d,c=%d",a,b,c);
输入:12  34  56
输出:a=12,b=56,c=0
相当于:忽略掉第二个输入34(它本身)
   
scanf("%d%d%*d",&a,&b,&c);
printf("a=%d,b=%d,c=%d",a,b,c);
输入:12  34  56
输出:a=12,b=34,c=0
相当于:忽略掉第三个输入56(它本身)
 

②%.*d,忽略下一个输入

scanf("%.*d%d%d",&a,&b,&c);
printf("a=%d,b=%d,c=%d",a,b,c);
输入:12  34  56
输出:a=12,b=56,c=0
相当于:忽略掉第二个输入34(它的下一个)
所以a和第一个输入匹配,b和第三个输入匹配,
中间那个输入被忽略了,所以c也就没有匹配上。
 

若输入“
1空格1”,则以下程序的输出结果是(),(),()。
int x = 2;
void fun(int p)
{
int x = 4,y = 0,z = 0,k;
k = x++,y++,++z;
x +=(y++,++y,k+ y++ +p);
printf("%d\n",x);//15
printf("%d\n",y);//4
}
int main( )
{
int a = 3;
scanf(" %*d%d ",&x,&a);// 此处x=1,a赋值失败a=3
fun(a); x+=a++ ;// 与while中的自加一样,先赋值,后自加
printf("%d\n",x);//4

  //  printf("%d\n", a);// a=4
return 0;
}

3.①if语句中,若只执行一条语句,则没必要写大括号

两小时的教训!!if-else if-else,如果if为真值,跳过else-if和else,执行语句

输入"2022 jyzy jia you<回车>"
char a = 1, ch;
int w = 1;
while ((ch = getchar( )) != '\n')
{
if (ch == ' ')
w = 0;// ①的第处体现
else if (w == 0)
{
        w = 1;
        if (a % 3 != 0 && (ch >= 'a' && ch <= 'z'))
                ch = ch - 'a' + 'A';// ①的第处体现
        a++;
}
putchar(ch);
}
结果为 2022 Jyzy Jia you

三.编程题 

输入一个一维数组,请你输出其中出现次数最多的元素
输入描述:
输入数字,输入数据规模限定在100及其以下;
数字0<x<=100;
第一行输入数据规模
第二行输入数据
输入格式例如:
示例1:
6
2 2 2 2 2 2
示例2:
4
1 2 2 2
输出描述:
第一行输出数字
示例1:
输入
10
2 2 2 2 3 3 33 4 4 4
输出
2

 

#include<stdio.h>

int main()
{
    int x = 0;
    scanf("%d\n", &x);
    int a[101] = { 0 };

    for (int i = 0; i < x; i++)
    {
        int t;
        scanf("%d", &t);
        a[t]++;
    }

    int i = 1,j=2;
    for (i; j < 101; j++)
    {
        if (a[i] < a[j])
        {
            i = j;
        }

    }
    printf("%d", i);

    int max=1,j=2;
    for (max; j < 101; j++)
    {
        if (a[max] < a[j])

        {
            max = j;
        }
    }


    return  0;
}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 早晨,一切都像是在沉睡中苏醒,宁静而又美好。晨光透过窗户洒在床上,温柔地唤醒每一个沉睡的灵魂。轻柔的微风轻拂着脸颊,仿佛在为这新的一天送来祝福。 在这美好的早晨里,空气格外清新,每一次呼吸都让人感到无比清爽。鸟儿的歌声在耳边回响,似乎在为这新的一天奏响序曲,让人感到生命的无限美好。远处,一缕缕白色的薄雾缭绕在树林中,犹如一层薄纱,将大地渲染得更加迷人。 在这美好的早晨里,人们也开始忙碌起来。从厨房飘来的香味让人垂涎欲滴,一杯温热的咖啡或者茶,更是为新的一天注入了不少能量和希望。 在这样美好的早晨,一切都变得轻盈而又欢快,仿佛所有的困难都可以轻松地迎刃而解。这一天将是充满机会和惊喜的,让我们满怀期待地迎接这美好的早晨,开始新的一天的旅程。 ### 回答2: 早晨,当黎明的第一缕阳光透过窗帘洒进房间,睡梦中的世界渐渐苏醒。微风轻拂着窗外的树梢,窗前的鸟儿欢快地鸣叫着,仿佛在为这新的一天献上美妙的序曲。 慵懒地伸了个懒腰,感受到清晨的柔和温暖。缓缓地下床,脚步轻盈如细雨纷纷,步入厨房,咖啡的丝丝香气弥漫开来。温润的杯子中,冒着慵慵的白烟,带来一天开始前的舒爽和惬意。 推开窗子,阳光洒在窗台上,四周一片宁静。清晨的街道上,行人匆匆而过,远方的车辆轻声呼啸,让人忍不住想起一切忙碌的工作。但此刻,我却拥有这片宁静,享受着大自然的恩赐。 透过窗户,望着迷人的天空,云朵像绵羊一样舒展着身躯,一切都那么悠然而祥和。这时候,阳光如丝绸般柔软,洒进房间,让人感受到一丝温情。闻着清晨花朵的香气,感受着大地的苏醒,心情平静而宁谧,仿佛跟大自然融为一体。 早晨,不仅是大自然的醒来,也是自己内心的觉醒。静静地坐在窗边,看着窗外的风景,给了我一种静心思考和抒发情感的机会。早晨美好的不只是阳光,还有对新的一天充满希望的期待,对生活的热爱与憧憬。在这宁静而美好的早晨里,我会拥抱每一个新的开始,为每一次希望的发芽而感恩。 ### 回答3: 早晨,晨光透过窗户强劲而柔和地洒在房间里。微风拂过,空气中弥漫着一股新鲜和清新的味道。天空的颜色由深蓝渐渐转为浅蓝,美丽的太阳羞涩地露出了它的笑脸,带来了无限的温暖和希望。 一觉醒来,眼睛逐渐适应了这迷人而温暖的光线,心情也变得轻松而愉悦。飞鸟在天空中跃跃欲试,它们的鸣叫声清脆而悦耳。远处的小溪,水波粼粼,似乎与大自然的和谐音乐相呼应,仿佛所有的生命都在这美丽的早晨醒来。 身体和心灵逐渐变得活跃,思绪也变得清晰。早晨的阳光,温暖地洒向大地,照亮了一切。行走在宁静的道路上,呼吸新鲜的空气,感受绿叶和花朵散发出的芳香,仿佛能够听到大自然的呢喃和歌唱。 早晨,是一个全新的开始。阳光洗涤了昨夜的疲惫,带来了新的希望和动力。这是一个独特的时刻,我们可以思考今天的目标和计划,为自己树立起一个美好的开始,为未来种下希望的种子。 早晨的美好并不仅仅是自然景色的绚烂,更是一种心灵的洗礼和生命的喜悦。在这美好的时刻,内心变得平静和安宁,准备面对新的一天的挑战。早晨是一个充满生机和活力的时刻,让人感受到生命的宝贵和无限可能性。 在早晨,我们不仅仅是起床和开始新的一天,更是迎接生活中的美妙瞬间和无穷的幸福体验。早晨,是一种宝贵而美妙的礼物,让我们怀着感激的心情拥抱它,享受生活的意义和价值。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值