-
2021-05-22 09:46:24
39
若有以下调用语句,则不正确的fun函数的首部是????
main(){。。。
int a[50],n;。。。
fun(n, &a[9]);。。。
a
void fun(int m,int x[])
b
void fun(int s, int h[41])
c
void fun(int p, int *s)
d
void fun(int n, int a)
解答:答案d是错误的,因为调用函数中的实在参数为一个是整型变量n,一个是指针变量a[9]的地址,即为指针变量。
因为函数的实在参数与形式参数应该类型相同,个数相同。而答案d中的两个参数均为整型变量,所以d是错误答案。答案a中的m为整型变量,x是一个数组类型的变量,而数组名代表数组的首地址,所以与形式参数类型相同。答案b与答案a原因相同。而答案c中的变量p为整型变量,变量s为指针类型的变量。
40
语句printf("a\bre\'hi\'y\\\bou\n");的输出结果是c为什么?其他3项哪里错了?
a\bre\'hi\'y\\\bou\n
a\bre\'hi'y\bou
re'hi'you
arbe'hi'y\bou(说明:'\b'是退格符)
解答:printf()函数由两部分组成,格式控制部分和输出表列,其中由双引号括起来的部分为格式控制部分,而格式控制部分有两种功能,一种是格式转换,该部分由%开始,另一部分属于原样输出的,而该print()函数中只包括原样输出的部分。
应该输出a\bre\'hi\'y\\\bou\n,但是在C语言中以'\'开始的字符为转义字符,所谓转义字符就是不是原来字符的含义,而转换成另一种含义了,比如说'\b'是退格符,就是光标由原来的位置向前移动一个位置。'\''输出的是单引号,'\\'输出的是一个反斜线,'\n'为换行。
因此该输出语句首先输出一个字符a,然后遇到'\b'向前移动一个位置,光标移动到字符a的下面,即下一次输出的从字符a的位置开始输出,然后输出re,字符r把字符a给覆盖掉了,接着输出单引号,然后输出字符hi,然后再输出单引号,然后输出字符y,然后输出一个反斜线,接着有遇到'\b'光标向前移动一个位置,即下一次输出的字符把反斜线给覆盖掉了,因此字符o把反斜线给覆盖掉了,接着输出字符u,然后换行。
因此输出数据为re'hi'you。
希望我的解释,你能明白,如果有什么不明白的地方,我会尽量给你答复的。
。
全部
更多相关内容 -
C++ 函数原型
2017-04-01 09:58:40函数原型是一条语句,因此必须使用分号结束。获得原型最简单的方法是复制函数定义中的函数头。函数原型不要求提供变量名,有类型列表就可以了。 二,为什么需要函数原型? 函数原型描述了函数到编译器的接口,它将...一,函数原型
函数原型(函数声明)就是告诉编译器这个函数是存在的,让编译器知道这个函数的相关信息。函数原型不要求提供形参名,有类型列表就可以了。避免使用函数原型的方法是,在首次使用函数定义之前定义它,但这并不是总可行的。我们一般把函数声明放在主函数的前面,因为min()函数是应用程序的入口。函数声明是告诉编译器这个函数存在,函数定义是表示该函数如何去做。
二,为什么需要函数原型?
函数原型描述了函数到编译器的接口,它将函数返回值的类型以及参数的类型和数量告诉编译器。例如:看函数原型如何影响下面的函数调用。
double cube(double x); int main() { double val = cube(5.0); return 0; } double cube(double x){ return x * x; }
首先原型告诉编译器,cube()有一个double参数。如果程序没有提供这样的参数,原型将让编译器捕获这样的错误。其次,函数调用结束后,将把返回值放到指定的位置。然后调用函数将从这个位置获取返回值。由于函数原型指出了函数的返回值是double类型,因此编译器知道应检索多少个字节以及如何解释他们。如果没有这些信息,编译器只能进行猜测,但是编译器并不会这么做。
三,函数原型的功能
函数原型可以帮助编译器完成许多的工作,同时,它也可以帮助程序极大的降低程序出错的几率。原型可以确保以下几点:
1,编译器正确处理函数返回值。
2,编译器检索使用的参数数目是否正确。
3,编译器检查使用的参数类型是否正确,如果不正确转换为正确的类型。
int x = 5; double val = cube(x);
首先看上面的函数调用,程序将一个int型的值5传递给cube()。编译器注意到,cube()原型指定一个double类型的参数,因此会将5转换为5.0。
-
C++函数的调用及函数原型
2020-08-11 17:05:08函数调用的一般形式 函数调用的一般形式为: ...按函数在语句中的作用来分,可以有以下3种函数调用方式: 函数语句 把函数调用单独作为一个语句,并不要求函数带回一个值,只是要求函数完成一定..函数调用的一般形式
函数调用的一般形式为:
函数名([实参表列]);
如果是调用无参函数,则“实参表列”可以没有,但括号不能省略。如果实参表列包含多个实参,则各参数间用逗号隔开。实参与形参的个数应相等,类型应匹配(相同或赋值兼容)。实参与形参按顺序对应,一对一地传递数据。但应说明,如果实参表列包括多个实参,对实参求值的顺序并不是确定的。函数调用的方式
按函数在语句中的作用来分,可以有以下3种函数调用方式:
- 函数语句
把函数调用单独作为一个语句,并不要求函数带回一个值,只是要求函数完成一定的操作。如例4.1中的printstar( ); - 函数表达式
函数出现在一个表达式中,这时要求函数带回一个确定的值以参加表达式的运算。如c=2*max(a, b); - 函数参数
函数调用作为一个函数的实参。如:
m=max(a, max(b, c)); //max(b, c)是函数调用,其值作为外层max函数调用的一个实参
对被调用函数的声明和函数原型
在一个函数中调用另一个函数(即被调用函数)需要具备以下条件:
- 首先被调用的函数必须是已经存在的函数。
- 如果使用库函数,一般还应该在本文件开头用#include命令将有关头文件“包含”到本文件中来。
- 如果使用用户自己定义的函数,而该函数与调用它的函数(即主调函数)在同一个程序单位中,且位置在主调函数之后,则必须在调用此函数之前对被调用的函数作声明。
所谓函数声明(declare),就是在函数尚在未定义的情况下,事先将该函数的有关信息通知编译系统,以便使编译能正常进行。
【例4.3】对被调用的函数作声明。- #include <iostream>
- using namespace std;
- int main( )
- {
- float add(float x,float y); //对add函数作声明
- float a,b,c;
- cout<<"please enter a,b:";
- cin>>a>>b;
- c=add(a,b);
- cout<<"sum="<<c<<endl;
- return 0;
- }
- float add(float x,float y)//定义add函数
- {
- float z;
- z=x+y;
- return (z);
- }
运行情况如下:
please enter a, b: 123.68 456.45↙
sum=580.13
注意:对函数的定义和声明不是同一件事情。定义是指对函数功能的确立,包括指定函数名、函数类型、形参及其类型、函数体等,它是一个完整的、独立的函数单位。而声明的作用则是把函数的名字、函数类型以及形参的个数、类型和顺序(注意,不包括函数体)通知编译系统,以便在对包含函数调用的语句进行编译时,据此对其进行对照检查(例如函数名是否正确,实参与形参的类型和个数是否一致)。
其实,在函数声明中也可以不写形参名,而只写形参的类型,如
float add(float, float);
这种函数声明称为函数原型(function prototype)。使用函数原型是C和C++的一个重要特点。它的作用主要是: 根据函数原型在程序编译阶段对调用函数的合法性进行全面检查。如果发现与函数原型不匹配的函数调用就报告编译出错。它属于语法错误。用户根据屏幕显示的出错信息很容易发现和纠正错误。
函数原型的一般形式为:
函数类型 函数名(参数类型1, 参数类型2…);
或
函数类型 函数名(参数类型1 参数名1, 参数类型2 参数名2…);
第(1)种形式是基本的形式。为了便于阅读程序,也允许在函数原型中加上参数名,就成了第(2)种形式。但编译系统并不检查参数名。因此参数名是什么都无所谓。上面程序中的声明也可以写成
float add(float a, float b); //参数名不用x、y,而用a、b
效果完全相同。
应当保证函数原型与函数首部写法上的一致,即函数类型、函数名、参数个数、参数类型和参数顺序必须相同。在函数调用时函数名、实参类型和实参个数应与函数原型一致。
两点说明:
1) 前面已说明,如果被调用函数的定义出现在主调函数之前,可以不必加以声明。因为编译系统已经事先知道了已定义的函数类型,会根据函数首部提供的信息对函数的调用作正确性检查。
有经验的程序编制人员一般都把main函数写在最前面,这样对整个程序的结构和作用一目了然,统览全局,然后再具体了解各函数的细节。此外,用函数原型来声明函数,还能减少编写程序时可能出现的错误。由于函数声明的位置与函数调用语句的位置比较近,因此在写程序时便于就近参照函数原型来书写函数调用,不易出错。所以应养成对所有用到的函数作声明的习惯。这是保证程序正确性和可读性的重要环节。
2) 函数声明的位置可以在调用函数所在的函数中,也可以在函数之外。如果函数声明放在函数的外部,在所有函数定义之前,则在各个主调函数中不必对所调用的函数再作声明。例如:
char letter(char, char); //本行和以下两行函数声明在所有函数之前且在函数外部
float f(float, float); //因而作用域是整个文件
int i(float, float);
int main( )
{…}//在main函数中不必对它所调用的函数作声明
char letter(char c1, char c2) //定义letter函数
{…}
float f(float x, float y)//定义f函数
{…}
int i(float j, float k) //定义i函数
{…}
如果一个函数被多个函数所调用,用这种方法比较好,不必在每个主调函数中重复声明。 - 函数语句
-
fread函数详解 函数原型
2019-04-30 14:58:11函数原型: size_t fread( void *buffer, size_t size, size_t count, FILE *stream ) buffer 是读取的数据存放的内存...函数原型:size_t fread( void *buffer, size_t size, size_t count, FILE *stream )
buffer 是读取的数据存放的内存的指针(可以是数组,也可以是新开辟的空间,buffer就是一个索引)
size 是每次读取的字节数
count 是读取次数
strean 是要读取的文件的指针
例如 从文件fp里读取100个字节 可用以下语句
fread(buffer,100,1,fp)
fread(buffer,50,2,fp)
fread(buffer,1,100,fp)
**************************************************************************************
对读出的二进制流是不能用strlen()或者sizeof()求其长度和大小的。**************************************************************************************
fread可以读二进制文件,有时用字符方式去读文件不能读完整个文件,但是二进制方式就可以 。这就是因为字符方式用特定的标记结尾的,读取时只要碰到该标记就自动结束函数fread()读取[num]个对象(每个对象大小为size(大小)指定的字节数),并把它们替换到由buffer(缓冲区)指定的数组. 数据来自给出的输入流. 函数的返回值是读取的内容数量...
使用feof()或ferror()判断到底发生哪个错误.
上一段代码:
- void HelpMassage()
- {
- FILE *fp;
- int size = 0;
- char *ar ;
- //二进制方式打开文件
- fp = fopen("lining.txt","rb");
- if(NULL == fp)
- {
- printf("Error:Open input.c file fail!\n");
- return;
- }
- //求得文件的大小
- fseek(fp, 0, SEEK_END);
- size = ftell(fp);
- rewind(fp);
- //申请一块能装下整个文件的空间
- ar = (char*)malloc(sizeof(char)*size);
- //读文件
- fread(ar,1,size,fp);//每次读一个,共读size次
- printf("%s",ar);
- fclose(fp);
- free(ar);
- printf("按任意键继续");
- getchar();
- getchar();
- }
void HelpMassage() { FILE *fp; int size = 0; char *ar ;
//二进制方式打开文件 fp = fopen("lining.txt","rb"); if(NULL == fp) { printf("Error:Open input.c file fail!\n"); return; } //求得文件的大小 fseek(fp, 0, SEEK_END); size = ftell(fp); rewind(fp); //申请一块能装下整个文件的空间 ar = (char*)malloc(sizeof(char)*size); //读文件 fread(ar,1,size,fp);//每次读一个,共读size次 printf("%s",ar); fclose(fp); free(ar); printf("按任意键继续"); getchar(); getchar();
}
-
如果一个函数没有return语句,调用函数之后的返回值为____。_学小易找答案
2020-12-07 18:00:31【填空题】阅读下面代码: sum = 0 for i in range(100): if(i % ...【单选题】腰椎间盘突出好发部位是:【单选题】如果一个函数没有return语句,调用函数之后的返回值为____。【填空题】下列程序输出的结果为____. de... -
C语言基础复习笔记第四课——顺序结构、C语句(说明、表达式、函数调用、空语句、控制语句、复合语句)、...
2020-06-07 12:12:53说明语句:用于定义变量、声明函数原型的语句。2. 表达式语句:即表达式之后加分号。3. 函数调用语句:即函数调用之后加分号。4. 空语句:即只有一个分号。(这个一般用不到)5. 控制语句:是用于控制程序执行流程的... -
C语言程序设计学习笔记:P7-函数
2021-11-22 15:33:59本系列文章为浙江大学翁恺C语言...文章目录一、函数的定义和使用1.1 初见函数1.2 函数的定义和使用1.3 从函数中返回二、函数的参数和变量2.1 函数原型2.2 参数传递2.3 本地变量2.4 函数庶事小测验 一、函数的定义和使 -
网易云课堂程序设计入门—C语言第五周 函数学习笔记
2016-11-23 10:09:28第五周 函数标签(空格分隔):程序设计入门—C语言5.1函数#include void sum ( int begin, int end ){ int i, sum = 0; for ( i = begin; i ; i++ ){ sum += i; } printf("从%d到%d的和是%d\n", begin, en -
4.4、函数的调用以及函数原型
2015-03-06 10:59:23函数调用的一般形式 函数调用的一般形式为: 函数名([实参表列]); 如果是调用无参函数,则“实参表列”可以没有,但括号不能省略。如果实参表列包含多个实参,则各参数间用逗号隔开。...按函数在语句中的作用来 -
编译器警告:未调用原型函数(是否是有意用变量定义的?)
2019-06-19 08:36:00简单来说,就是编译无法分辨你当前的代码是在声明一个函数原型,还是在调用一个函数。 我上面的代码,本来的意图是调用一个无参的构造函数,然后编译器认为我是在声明一个函数,这个函数的返回类型是MyArray,所以... -
C++:第3章 函数
2021-06-23 09:24:42若有以下函数调用语句,在此函数调用语句中实参的个数是( A ) 。 fun(a+b,(y=10,y),fun(n,k,d)); A. 3 B. 4 C. 5 D. 6 以下函数调用语句中,含有的实参个数是( A ). func(rec1,rec2 +1,(rec3,rec4)); A. 3 B. 4... -
15-构造函数及原型
2021-12-09 22:06:43// 180 当一个对象被new出来的时候,不仅仅执行了构造函数里面的语句,我们的感觉,构造函数的原型中,所有的属性也加给了这个对象 prototype一定是函数的属性,但这个函数是一个构造函数的时候,那么它new出来的对象,将... -
c语言中free函数的理解
2021-05-18 13:52:11最近在复习c语言的时候再次用到了malloc函数和free函数,此处着讲解... 函数的原型:void *malloc(unsigned int NumBytes);3. 函数功能:该函数分配了NumBytes个字节的内存空间,如果成功,则返回指向这块内存的指针... -
计算机程序设计c++ 5-1:函数的调用格式
2021-10-20 22:40:08函数调用 函数定义后,并不能自动执行,必须通过函数调用来实现函数的功能。 函数调用,即控制执行某个函数。 C++中,主函数可以调用其它子函数,而其它函数之间也可以相互调用。 在本节中,我们将介绍一下内容: ... -
对于void类型函数调用时不可作为
2021-05-21 02:33:34c语言 void函数怎么调用当n=123114350时, 结果为:c1=3 c2=1 c3=2 int c1, c2, c3; void fun(lon【void的含义】 void的字面意思是“无类型”,void *则为“无类型指针”,void *可以指向任何类型的数据。 void几乎... -
C语言 第四章 函数 重点 典型题
2020-09-22 17:15:377、已知一个函数的定义如下: double fun(int x, double y) {...} 则该函数的正确的函数原型声明为( )。 A. double fun(int x,double y) B. fun(int x,double y) C. double fun(int,double) D. fun(x,y) 答案:C... -
JavaScript--07 工厂模式、构造函数模式、原型模式的优缺点及组合使用
2019-03-02 21:59:34ECMA-262 把对象定义为:“无序属性的集合,其属性可以包含基本值、对象或者函数。”严格来讲,这就相当于说对象是一组没有特定顺序的值。 对象的每个属性或方法都有一个名字,而每个名字都映射到一个值。正因为... -
Python中,定义函数的关键字是____._学小易找答案
2020-12-08 14:21:10【填空题】下列程序输出的结果为...【判断题】定义函数时,即使该函数不需要接收任何参数,也必须保留一堆空的圆括号来表示这是一个函数。【填空题】根 据滴定方式、滴定条件和选用指示剂的不同,银量法划分为 、 、 。... -
有一个一维数组score,存放10个学生成绩,编程计算平均分, 要求:用如下函数原型编写计算平均分的函数...
2021-03-08 15:40:00要求:用如下函数原型编写计算平均分的函数FindAver() 计算学生平均成绩,且学生成绩为实型。 float FindAver(float score[],int n); 在main函数中输出平均分,并输出成绩在平均分以上学生成绩。 要求输入提示信息为... -
c语言第8章函数习题
2021-05-22 15:42:081、第8章 函数习题A卷1. 单项选择题(1)C 语言总是从 函数开始执行。 AA. main B. 处于最前的 C.处于最后的 D.... double(2)以下 函数,真正地没有返回值。 BA. int a()int a=2;return (a); B. void b()p... -
函数---习题
2021-05-20 04:41:32C++语言程序必须要有return语句b. C++语言程序中,要调用的函数必须在main()函数中定义c.C++语言程序中,只有int类型的函数可以未经声明而出现在调用之后d. C++语言程序中,main()函数必须放在程序开始的部分2. ... -
c语言的输出语句
2021-12-31 16:10:28本小节介绍的是向标准输出设备显示器输出数据的语句。在C语言中,所有的数据输入/输出...printf函数是一个标准库函数,它的函数原型在头文件“stdio.h”中。但作为一个特例,不要求在使用 printf 函数之前必须包含st -
第二章习题-ddg.doc
2021-05-23 03:32:25给出以下概念的解释说明。真值机器数数值数据 非数值数据无符号整数带符号整数定点数原码补码 变形补码溢出浮点数尾数阶阶码 移码阶码下溢阶码上溢规格化数左规右规 非规格化数机器零非数(NaN)BCD码逻辑数 ASCII码 ... -
C语言题库(二)
2020-12-11 21:05:30④具有结构化控制语句; ⑤语法限制不太严格,程序设计自由度大; ⑥可以进行位操作,能实现汇编语言的大部分功能,能直接对硬件进行操作; ⑦生成的目标代码质量高,程序执行效率高;⑧程序的移植性好。 2.C... -
C语言常见的函数调用
2018-11-10 13:24:00C语言常见的函数调用 isatty,函数名,主要功能是检查设备类型,判断文件描述词是否为终端机。 函数名: isatty 用 法: int isatty(int desc); 返回值:如果参数desc所代表的文件描述词为一终端机则返回1,否则... -
C++学习之分支语句和逻辑运算符(if语句、逻辑表达式、字符函数库(cctype)和?:运算符)
2018-10-05 17:38:34如果测试条件为true,则if语句将引导程序执行语句或语句块;如果条件是false,程序将跳过这条语句或语句块。 例如:计算输入中的空格和字符总数,则可以在while循环中使用cin.get(char)来读取字... -
单片机C语言常用语句详解
2021-05-21 08:12:23《单片机C语言常用语句详解》由会员分享,可在线阅读,更多相关《单片机C语言常用语句详解(22页珍藏版)》请在人人文库网上搜索。1、C51编程常用语句总结,一、C51定义SFR 定义方法:两个关键字:sfr和sbit 1.定义特殊... -
C语言试题库(含答案)
2021-05-19 19:50:30A、字符型数组中可以存放字符串B、以对字符型数组进行整体输入、输出 C、可以对整型数组进行整体输入、输出D、不能在赋值语句中通过赋值运算符“=”对字符型数组进行整体赋值 标准答案:C【10】若有以下定义: char... -
{练习题}函数
2022-05-02 19:25:00一....函数体的最后一条语句必须是return语句 C.标准C++要求在调用一个函数之前,必须先声明其原型 D.编译器会根据函数的返回值类型和参数表来区分函数的不同重载形式 3.若有下面的函数调用: ... -
编写函数fun,原型为void fun(int a[], int *n) 它的功能是:求出1到100之内能被7或者11整除,但不能同时被...
2021-12-03 15:05:42即:n的地址存上k的值了 如果函数的输入不是指针,间下面这个代码,修改了两个地方(写了注释的那两句) //把指针改为变量之后就不对了。 #define _CRT_SECURE_NO_WARNINGS #include #include void fun(int a[], ...