资讯

精准传达 • 有效沟通

从品牌网站建设到网络营销策划,从策略到执行的一站式服务

【C语言】哭哭羊进阶史(程序设计基础期末模拟考试)2022.12.12-创新互联

顺城网站建设公司成都创新互联公司,顺城网站设计制作,有大型网站制作公司丰富经验。已为顺城上1000家提供企业网站建设服务。企业网站搭建\外贸网站制作要多少钱,请找那个售后服务好的顺城做网站的公司定做!

题目+答案+解析+疑难点


解析:

1.  '   " 使用错误,字符常量使用单引号表示,字符串常量使用双引号表示;

2.字符串不可赋值给变量。


解析:

1.sqrt默认double类型;

2.开方出来就是double了,只要一有个double就全double了(ssj)。


解析:

方法一:思路分析

测试y--和--y:

C语言中的++和--运算符_Anntonnia的博客-博客_c语言中--++和--运算符分别是 += 1 和 -= 1 的简写。设计这样两个运算符的本意是方便程序员,但i++和++i使用不恰当有时候会造成混淆,反倒令刚入门的C程序员有点儿混乱。如果i++或者++i单独为一条指令,则效果并没有什么区别,都是令i = i + 1;但是如果和其它的运算符结合,则二者还是有区别的。具体来说,i++ 是先使用 i,然后执行 i = i + 1;而 ++i 则是先执行 i = i + 1,然后再使用 i 。举个例子看下:int i = 0;printf("i is: %d\n".https://blog.csdn.net/Anntonnia/article/details/118548786?spm=1001.2014.3001.5506(▲牛爷爷推荐)

逻辑运算符及其优先级,C语言逻辑运算符及其优先级详解_木子欢儿的博客-博客C 语言提供了以下三种逻辑运算符。一元:!(逻辑非)。二元:&&(逻辑与)、||(逻辑或)。以上三种逻辑运算符中,逻辑非 ! 的优先级最高,逻辑与 && 次之,逻辑或 || 优先级最低。即算术、逻辑、赋值运算符的优先级顺序为:逻辑非 ! >算术 >逻辑与 &&、逻辑或 || >赋值=...https://blog.csdn.net/muzihuaner/article/details/105284414?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522167098632816782388072763%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=167098632816782388072763&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduend~default-2-105284414-null-null.142%5Ev68%5Ewechat,201%5Ev4%5Eadd_ask,213%5Ev2%5Et3_esquery_v2&utm_term=%E9%80%BB%E8%BE%91%E8%BF%90%E7%AE%97%E7%AC%A6%E4%BC%98%E5%85%88%E7%BA%A7&spm=1018.2226.3001.4187

方法二:在CodeBlocks中测试


解析:

在二维数组中,高维参数不可省略,必须指明;

考点:①数组的初始化

  为数组分配内存空间,并为数组中的元素进行赋值。初始化可分为动态初始化和静态初始化。

 动态初始化:只指定长度,由系统给出初始化值(int整型默认为0,float浮点型默认为0.0,字符串型默认为\0,即空元素)。

 静态初始化:给出初始化值,由系统决定长度。

  ②二维数组初始化方法

1.按行连续赋值,即将所有的数据写在一个大括号内,按照元素排列顺序对元素赋值。

 int a[2][2]= { 1, 2, 3, 4 };

2.给所有元素赋初值时,可以省略行标,但列标一定不能省略。

 int a[][2]= { 1, 2, 3, 4 };

3.按行分段赋值,可以分行给数组元素赋值。

int a[][2] = { { 1, 2 }, { 3, 4 } };

4.直接对元素赋值。

 int a[2][2];

a[0][0] = 1;

a[0][1] = 2;

​ 


解析:

1.C函数可以嵌套调用,不能嵌套定义;

2.函数也可以没有返回值。


解析:

1.C项scanf("%d%d%d",&a,&b,d);等同于scanf("%d%d%d",&a,&b,&c); ;

2.D项当变量是指针类型时,不需要取地址符号,指针指向的是某一个存储单元的首地址。


解析:

1.对数组来说,数组的名字就是数组首元素的地址(a等价于&a[0]);

2.A中,因为*p=a,所以a[p-a]为a[a-a]即a[0],A项正确;

3.D中,先指向地址,再取该地址中的内容。

知识点:指针

#includeint main(void)
{
    int  a = 0, b = 1;
    char c = 'A';
    int *pa,*pb;
    char *pc;
    pa=&a;
    pb=&b;
    pc=&c;
    printf("a is %d, &a is %p\n", a, &a);
    printf("b is %d, &b is %p\n", b, &b);
    printf("c is %c, &c is %p\n", c, &c);
    printf("a is %d, &a is %p\n", *pa, pa);
    printf("b is %d, &b is %p\n", *pb, pb);
    printf("c is %c, &c is %p\n", *pc, pc);
    return 0;
}

在CodeBlocks中测试

是不是一直搞不懂C语言的指针,看完这个动画,你就全明白了_哔哩哔哩_bilibili(ssj)


解析:

1.strlen()

此函数原型为unsigned in strlen(const char *str)

功能为返回字符串str的长度(不包括'\0')。

2.strcpy()
此函数原型为 char *strcpy(char* dest, const char *src)
功能为拷贝字符串内容到目的串,把src所指向的内容拷贝到dest。

3.strcmp()
此函数的函数原型为 int strcmp(const char *str1, const char *str2)
功能为比较两个字符串。
·当str1指向的字符串大于str2指向的字符串时,返回正数。

·当str1指向的字符串等于str2指向的字符串时,返回0。
·当str1指向的字符串小于str2指向的字符串时,返回负数。

4.strcat()
此函数原型为 char *strcat(char *dest, const char *src)
功能为连接两个字符串,把src连接到dest后面,返回dest地址。

C语言str系列函数操作_第一视角丶的博客-博客_c语言str函数用法1.strcpy①函数原型:char * strcpy(char * destination,const char * source);②作用:将source指向的C字符串复制到destination指向的数组中,包括终止空字符(并在该点停止)③返回值:返回destination注意:要避免内存重叠的问题。2.strcat①函数原型:char * strcat(char *...https://blog.csdn.net/weixin_43747178/article/details/97134212?ops_request_misc=&request_id=&biz_id=102&utm_term=c%E8%AF%AD%E8%A8%80str%E5%87%BD%E6%95%B0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduweb~default-7-97134212.142%5Ev68%5Ewechat,201%5Ev4%5Eadd_ask,213%5Ev2%5Et3_esquery_v2&spm=1018.2226.3001.4187C语言str系列函数操作_第一视角丶的博客-博客_c语言str函数用法1.strcpy①函数原型:char * strcpy(char * destination,const char * source);②作用:将source指向的C字符串复制到destination指向的数组中,包括终止空字符(并在该点停止)③返回值:返回destination注意:要避免内存重叠的问题。2.strcat①函数原型:char * strcat(char *...https://blog.csdn.net/weixin_43747178/article/details/97134212?ops_request_misc=&request_id=&biz_id=102&utm_term=c%E8%AF%AD%E8%A8%80str%E5%87%BD%E6%95%B0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduweb~default-7-97134212.142%5Ev68%5Ewechat,201%5Ev4%5Eadd_ask,213%5Ev2%5Et3_esquery_v2&spm=1018.2226.3001.4187


解析:

1.百分号输出要用%%(ssj);

2.双引号中的内容原样输出;

3.printf("%x,%o,",ch,ch,k)中,k是多出来的,不会输出。


解析:

方法一:思路分析

在程序中可以多次给一个变量赋值,每赋一次值,与该变量相应的存储单元的数据就被更新一次,内存中当前的数据就是最后一次所赋值的那个数据。即,最左边变量所得到的新值是整个赋值表达式的值。

C语言基础丨运算符之赋值运算符(五)_Emily-C的博客-博客_c语言中赋值运算符赋值操作是程序设计中最常用的操作之一,C 语言共提供了 11 个赋值运算符,均为二元运算符,其中仅有一个为基本赋值运算符 =,其余 10 个均是复合赋值运算符,即:(1)简单赋值运算符" = "用法:变量标识符 = 表达式作用:将一个数据(常量或表达式)赋给一个变量 ,左侧必须是变量,不能是常量或表达式注意:1>.在程序中可以多次给一个变量赋值,每赋一次值,与该变量相应的存储单元的数据就被更新一次,内存中当前的数据就是最后一次所赋值的那个数据。即,最左边变量所得到的新值是整个赋值.https://blog.csdn.net/Hsuesh/article/details/113355976?ops_request_misc=&request_id=&biz_id=102&utm_term=%E8%B5%8B%E5%80%BC%E8%BF%90%E7%AE%97%E7%AC%A6C%E8%AF%AD%E8%A8%80&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduweb~default-3-113355976.142%5Ev68%5Ewechat,201%5Ev4%5Eadd_ask,213%5Ev2%5Et3_esquery_v2&spm=1018.2226.3001.4187

方法二:在CodeBlocks中测试


解析:

1.数组a的首地址表示方法:&a[0] 或 a 。  

2.①当变量是指针类型时,不需要取地址符号,指针指向的是某一个存储单元的首地址。
 ②当变量是数组,不需要取地址符号,数组名本身指向的就是这个数组的首地址。
 ③其它类型变量需要用&取地址符号。

C语言基础知识:地址与取地址符_l_0_f的博客-博客_c语言取地址地址与取地址符变量的地址变量的基本属性包括以下内容变量类型变量名变量值变量存在于内存中位置我们声明变量(如int number)时,程序根据变量的类型(如int)分配一块内存,并将这块内存的开始地址和变量名关联起来。或者,我们可以试着将变量想象成一个盒子,不同类型的变量就是装着不同类型东西的盒子。除了类型之外,变量还有一个属性就是地址(address),我们可以把这看作是贴在盒子上的一种标签。如果你把这个地址给到了张三,张三就可以利用这个地址来找到“贴着对应标签的盒子”-----https://blog.csdn.net/l_0_f_16/article/details/118948305?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522167117226316782390576204%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=167117226316782390576204&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~top_click~default-2-118948305-null-null.142%5Ev68%5Ewechat,201%5Ev4%5Eadd_ask,213%5Ev2%5Et3_esquery_v2&utm_term=%E5%8F%96%E5%9C%B0%E5%9D%80%E7%AC%A6&spm=1018.2226.3001.4187C语言 什么时候用取地址什么时候不用取地址,&符号讲解_梁同学与Android的博客-博客_c语言什么时候用取地址符情况一:&是一个取地址运算符&a是一个表达式,其功能是求变量a的地址scanf函数的一般形式为:scanf("格式控制字符串",地址列表);scanf输入的是地址,printf输出的是值,如下举例说明#includevoid main() {int a,b,c;printf("input the value of a,b,c\n");scanf("%d %d %d",&a,&b,&c);printf("a=%dhttps://blog.csdn.net/qq_43290288/article/details/108760945?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522167117239216782412584285%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=167117239216782412584285&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduend~default-2-108760945-null-null.142%5Ev68%5Ewechat,201%5Ev4%5Eadd_ask,213%5Ev2%5Et3_esquery_v2&utm_term=%E6%95%B0%E7%BB%84%E4%B8%8D%E7%94%A8%E5%8A%A0%E5%8F%96%E5%9C%B0%E5%9D%80%E7%AC%A6&spm=1018.2226.3001.4187


解析:

C语言的标识符区分大小写。 

考点:▼标识符定义规则

①可以由数字、字母、下划线_组成

②不能以数字开头

③不能是关键字

④区分大小写

C语言编程规范 — 标识符的命名规则_yunfan188的博客-博客_标识符的命名规则C语言编程规范—标识符的命名规则。https://blog.csdn.net/u010429831/article/details/124212389?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522167117283116800213051796%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=167117283116800213051796&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduend~default-2-124212389-null-null.142%5Ev68%5Ewechat,201%5Ev4%5Eadd_ask,213%5Ev2%5Et3_esquery_v2&utm_term=%E6%A0%87%E8%AF%86%E7%AC%A6%E7%9A%84%E5%91%BD%E5%90%8D%E8%A7%84%E5%88%99C%E8%AF%AD%E8%A8%80&spm=1018.2226.3001.4187


​ 

解析:

数组初始化时int整型默认为0。

C语言中static用法详解_happy_child_的博客-博客_static提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言一、static修饰变量1.修饰局部变量2.修饰全局变量二、static修饰函数总结前言static关键字不仅可以用来修饰变量,还可以用来修饰函数。在使用static关键字修饰变量时,我们称此变量为静态变量。静态变量的存储方式与全局变量一样,都是静态存储方式。静态变量属于静态存储方式,属于静态存储方式的变量却不一定就是静态变量。提示:以下是本篇文章正文内容,下面案例可供参考一、static修饰变量1.修饰局部变量.https://blog.csdn.net/happy_child_/article/details/124280981?ops_request_misc=&request_id=&biz_id=102&utm_term=C%E8%AF%AD%E8%A8%80static&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduweb~default-0-124280981.142%5Ev68%5Ewechat,201%5Ev4%5Eadd_ask,213%5Ev2%5Et3_esquery_v2&spm=1018.2226.3001.4187


解析:

“==”属于关系运算符。

C语言关系运算符详解_轻松学C语言的博客-博客关系运算符在使用时,它的的两边都会有一个表达式,比如变量、数值、加减乘除运算等,关系运算符的作用就是判明这两个表达式的大小关系。注意,是判明大小关系,不是其他关系。C语言提供了以下关系运算...https://blog.csdn.net/LxXlc468hW35lZn5/article/details/116279405?ops_request_misc=&request_id=&biz_id=102&utm_term=%E5%85%B3%E7%B3%BB%E8%BF%90%E7%AE%97%E7%AC%A6&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduweb~default-1-116279405.nonecase&spm=1018.2226.3001.4187


解析:break只能用于switch语句和循环语句中。

考点:break的用法

①break语句对if-else的条件语句不起作用;

②在多层循环中, 一个break语句只向外跳一层。


解析: 即传址调用


​ ​ 

解析:

共有4处错误

1.  #include

2.  mul = 1

3.  i++

4.  i%2 = 1  (奇数项)

正确答案:

①自己改的(改为for循环)

#include#includeint main()
{
    float mul=1;
    int i=1;
    int sum=0;
    for(i=1;i<=5;i++)
    {
        if(i%2==0)
        {
             mul *= i;
        }
        else
        {
            sum += i;
        }
    }
    printf("sum=%d\n",sum);
    printf("mul=%f\n",mul);
    return 0;
}

在CodeBlocks中测试▼

②参考答案

#includeint main()
{
    double mul = 1;
    int i = 0, sum = 0;
    while(i<=5)
    {
        if(i%2==1)
            sum = sum+i;
        else
            mul = mul*i;
        i++;
    }
    printf("sum=%d\n",sum);
    printf("mul=%lf\n",mul);
    return 0;
}

在CodeBlocks中测试▼

你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧


网站标题:【C语言】哭哭羊进阶史(程序设计基础期末模拟考试)2022.12.12-创新互联
浏览地址:http://cdkjz.cn/article/dseghc.html
多年建站经验

多一份参考,总有益处

联系快上网,免费获得专属《策划方案》及报价

咨询相关问题或预约面谈,可以通过以下方式与我们联系

业务热线:400-028-6601 / 大客户专线   成都:13518219792   座机:028-86922220