C语言基础知识实例讲解和C语言程序中用_第1页
C语言基础知识实例讲解和C语言程序中用_第2页
C语言基础知识实例讲解和C语言程序中用_第3页
C语言基础知识实例讲解和C语言程序中用_第4页
C语言基础知识实例讲解和C语言程序中用_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

C语言基础知识:实例讲解这篇文章旨在让各位对C有个总体的认识,有看不懂的地方请不必太在意,只要记住就可以了,继续往下学下去就会明白的。首先请看下面这个简单的C程序,猜猜它会做些什么。猜不出来也没关系,后面会有详细的解说。#include<stdio.h>intmain(void)/*一个简单的程序*/{intnum;/*声明一个名叫num的变量*/num=1;/*将1赋值给num*/printf("ThisisasimpleCprogram.");/*调用printf函数*/printf("Myfavoritenumberis%dbecauseitisfirst.",num);return0;}在对这个程序进行详细说明之前,我想先请您用编译器把它编译成可执行文件,并且运行,看看运行结果和您的猜想是否一致。如果不懂如何进行编译,请参考以下文章:下面,我将分两步对这个程序进行详细的讲解。第一步是概要说明,也就是对程序中每一行代码的含义作简单讲解,以帮助您对这个程序有一个大致的理解。第二步是详细说明,也就是程序中的每一行代码进行详细的讲解,以加深您的理解。一、概要说明#include<stdio.h><-把另外一个文件包含进来这行代码命令编译器把头文件(.h文件)stdio.h中的内容包含到我们的程序中。stdio.h是C语言的标准头文件之一,提供对键盘输入和显示输出等的支持。要使用printf函数,就应该包含这个头文件。顺带一提,stdio代表standardinput/output,也就是标准输入输出的意思。intmain(void)<-函数头C程序由一个或多个函数组成。我们的这个程序只有一个函数:main函数。圆括号()表明main是一个函数;int表明main函数返回一个整数;void表明main函数不接受任何参数。在此,请您紧记,intmain(void)是ISO/ANSIC标准中定义的main函数定义方法之一。/*asimpleprogram*/<-注释/*和*/用于对程序进行注释说明,帮助读者更快更好地理解程序。编译器会忽略/*和*/之间的内容(包括/*和*/),不会对它们进行编译。{<-函数体的开端这个开大括弧{标志着函数体开始。函数体以闭大括弧}结束。在{和}之间的语句都属于这个函数。intnum;<-声明变量num这个语句表明我们声明了一个名叫num的变量。int表明这个变量为整型变量。num=1;<-赋值语句这个语句将1赋值给变量num。执行这个语句后,num的值等于1。printf("ThisisasimpleCprogram.");<-函数调用语句printf函数是C语言标准函数库里的函数。这个语句调用printf函数在屏幕上显示“ThisisasimpleCprogram.”,并且换行。是换行符,它提示printf开始新的一行,也就是将光标移动到下一行的开端。如果上面的语句中没有,那就不会换行,而且光标会紧跟在“Thisisasimpleprogram.”后面。printf("Myfavoritenumberis%dbecauseitisfirst.",num);%d告诉printf用num的值替换掉%d,并且以整数形式显示num的值。因为num的值为1,所以这个语句在屏幕上显示“Myfavoritenumberis1becauseitisfirst.”,并且换行。return0;<-返回语句C程序应该返回一个数值给它的调用者。0代表程序无误退出;而其它数字的含义则由系统决定。通常,非零(如-1)代表程序运行中遇到某种错误而退出。}<-函数体结束函数体以闭大括弧}结束。二、详细说明现在,让我们进一步来了解每一行代码的含义。下面的内容很基础,也很重要,必须认真弄懂,牢牢掌握。1.#include预处理指令和头文件在编译器对我们写的源程序进行编译之前,预处理器会对我们的写的源代码进行必要的处理,称为预处理。#include就是一个预处理指令,它命令预处理器进行的预处理是:把特定的头文件包含到我们的源代码里。#include<stdio.h>的作用是将头文件stdio.h里的内容包含进我们的程序,产生的结果是将stdio.h里的内容一字不漏地插入#include<stdio.h>出现的地方,并且删除#include<stdio.h>。换句话说,就是用stdio.h里的内容替换#include<stdio.h>。这个过程是在预处理阶段完成的。C语言的这种包含文件的机制为多个程序共享相同信息提供了极大的方便。stdio.h是C语言标准中定义了的头文件,它包含着输入输出函数的信息。所有C编译器都应该有这个头文件,这是ANSI/ISOC标准中规定的。当然,ANSI/ISOC规定的编译器必须提供的头文件可不止这么一个。标准还规定了许多别的头文件,那些我们会在以后慢慢学到。有些程序需要包含stdio.h,而有些不需要。如果上面这个例子中没有使用printf函数,那就不需要包含stdio.h。头文件中包含着编译器进行编译时所需的信息。头文件中可能指明了函数名和函数调用方法,但是这些函数的实现代码并不在头文件中,而是在预先编译好了的库文件里。链接器负责在库文件中寻找我们的程序所需的代码,并且把那些代码和我们写的程序进行链接,从而将我的写的程序链接成可执行文件。一句话,头文件用于指导编译器正确地将我们写的源程序编译成可执行文件。2.main函数在C语言中,main函数是主函数。每个C程序都必须有且只能有一个main函数(主函数)!C程序从main函数开始执行,并且在main函数中结束。int是main函数的返回值类型,它表明main函数应该返回一个整数给程序的调用者(如操作系统)。如果您想了解更多关于main函数的东西,请点击下面的链接:C/C++误区一:voidmain3.注释/*asimpleprogram*//**/之间的内容都是注释。对程序进行适当的注释可以帮助读者(包括您自己)更快更好地理解您写的代码。注释可以在源程序中的任何地方书写。/*和*/之间的任何内容(包括/*和*/)都会被编译器忽略掉。注意:/和*必须紧挨在一起,它们之间不能有空格。/*我是注释*//*我是跨行注释*//*我也是注释*/以上的注释都是合法的;但下面的注释是非法的,因为没写注释结束标记*/。/*非法,没有注释结束标记下面这个注释可能会出乎你的意料:/*我是注释开始标记/*哦哦,我不是注释开始标记我是注释结束标记,我和第一个/*匹配,而不是和第二个/*匹配。*/上面这个注释中,注释结束标记*/和第一个/*匹配,它们之间的内容都被视为注释。C99中增加了另外一种注释方式,这种注释方式使用//作为注释符,和//处于同一行,并且在//右边的内容都被当作注释。/和/之间不能有空格。//我是注释intrigue;//注释放在这里也是合法的上面的注释在C99中是合法的,但是在C89中是非法的。也就是说,老旧的编译器可能不支持//注释符。VC6支持//,TC2不支持。4.大括号与函数体C语言中,所有函数都以大括弧({})作为界定符。函数体从开大括弧{开始,以闭大括弧}结束。在后续教程中,我会对函数进行更详细的讲解。5.intnum;这个语句声明了变量num。这一行末尾的分号(;)表明这一行是一个语句。;是语句的一部分,单独一个;也是一个合法的C语句。int是C语言中的一个关键字,它代表C语言里的一种基本数据类型:整型。关键字是语言的保留字,不能用作其它用途。例如:我们不能关键字来做变量名或者函数名。标识符是指我们为变量或函数等取的名字。在这个语句中,num就是标识符。C语言中,所有变量在使用前都必须声明。C89中,变量的声明必须位于函数体或者程序块的开端。例如:intmain(void)/*C89*/{/*函数体开始*/intdoors;intdogs;doors=5;dogs=3;{/*程序块开始*/intdig;intdug;dig=6;dug=8;}/*程序块结束*/return0;}/*函数体结束*/而在C99中,声明可以位于函数体或者程序块的任何地方。但是,变量仍然需要在声明之后才可使用。例如:intmain(void)/*C99*/{/*函数体开始*/intdoors;doors=5;{/*程序块开始*/intdig;dig=6;intdug;dug=8;}/*程序块结束*/intdogs;dogs=3;return0;}/*函数体结束*/上面的程序在C99中是合法的,但是在C89中却是非法的。当前支持C99的编译器不多,所以上面的代码您的编译器很有可能编译不了。故而,为了使我们的代码具有良好的可移植性,我们应该尽可能少用,甚至不用C99中的新特性。6.赋值num=1;赋值是C语言中的一种基本操作。上面的语句是一个赋值语句,它的含义是:将1赋值给变量num。赋值操作完成后,num的值等于1。7.printf函数printf("ThisisasimpleCprogram.");printf("Myfavoritenumberis%dbecauseitisfirst.",num);这两行代码都调用了printf函数。printf是一个标准C函数,也就是说,它是C语言标准函数库里定义了的函数。圆括号()表明printf是一个函数,圆括号里的内容会被传递给printf函数。例如,上面第一行代码把“ThisisasimpleCprogram.”(不包括双引号)传递给printf函数,然后由printf函数把这些信息显示于显示器。是换行符,它提示printf开始新的一行。正因为是换行符,所以不会显示出来,而是进行了换行。如果上面的语句中没有,那就不会换行。上面代码第二行中的%d告诉printf用num的值替换掉%d,并且以整数形式显示num的值。%d被称为占位符,它告诉printf应该在什么地方显示num的值。%用于提醒printf在此处显示一个变量的值(本例中是num的值);d告诉printf以十进制整数的形式显示num的值。8.return(返回)语句return0;这个return语句是我们程序中的最后一个语句。intmain(void)中的int表示main函数应该返回一个整数,所以我们要使用return语句来返回一个整数。如果您想了解更多关于返回值的东西,请点击下面链接,查看文章的第四点。C/C++误区一:voidmain上面所说的某些内容您暂时可能还不太理解,但是不用害怕,牢牢地把它们记住,然后继续往下学吧!随着学习的深入,就会逐渐搞明白。现阶段只要有这个概念就足够了。C语言程序实例讲解(二)首先请看以下代码,并且和我们的第一个C程序比较比较,看看这个程序新增了什么知识点。/*meter2centimeters.c--以厘米为单位来表示两米*/#include<stdio.h>intmain(void){intmeters,centimeters;meters=2;centimeters=100*meters;/*100乘以meters*/printf("%d-meterisequalto%dcentimeters.",meters,centimeters);printf("Yes,Isaid%dcentimeters!",100*meters);return0;}下面我们来仔细分析这个小程序。1.文档这段代码头部的注释标明了文件名和程序的作用,我们把这些注释称为文档。写文档是一个很好的习惯,可以帮助我们了解程序的作用。在由多个源文件组成的程序中,文档显得更为重要。由于我们目前为止所写的都是很简单的程序,您也许还不觉得写文档有多大的作用,甚至还觉得浪费时间。但是我们应该养成写文档的习惯,这对我们以后写复杂的程序很有帮助。对于复杂程序,我们应该尽可能把文档写得更详尽。可以参考以下格式:/****************************************************文件名:meter2centimeters.c*作者:Antiglossat*编写日期:05-9-90:00*最后修改日期:05-9-90:00*功能:以厘米为单位来表示两米*算法:1米=100厘米**************************************************/2.多重声明intmeters,centimeters;上面那句声明语句声明了两个变量。我们可以在一句声明语句中声明任意数目的变量,只要变量名之间用逗号(,)隔开就可以了。例如下面这个语句声明了4个变量。inta,b,c,d;3.乘法运算C语言中,*是乘法运算符,所以centimeters=100*meters;的意思是:用100乘以变量meters的值(本例中为2),然后把相乘的结果赋值给变量centimeters。4.printf函数printf("%d-meterisequalto%dcentimeters.",meters,centimeters);上面这个语句中占位符%d出现了两次。第一个%d由变量meters的值替换;而第二个%d则由centimeters的值替换。注意:每个变量由逗号(,)隔开;"%d-meterisequalto%dcentimeters."中的双引号是必须的,而且必须是英文的双引号,不能是中文的双引号。printf("Yes,Isaid%dcentimeters!",100*meters);上面这个语句表明,用于替换占位符的不仅仅可以是变量,也可以是表达式(100*meters是一个乘法表达式)。1、将C程序编译成目标文件,其扩展名为EXE。(错)2、C语言中,程序中用/*…*/括起来的内容是程序的注释。(对)3、C程序中以冒号作为语句的结束符。(错)4、C程序的书写格式比较自由,一行内可写一个语句,也可以写多个语句。(对)5、C语言中,强制类型转换后,原变量的值和数据类型不变。(对)6、C语言中,当把一个实型数据赋给整型变量时系统将自动截掉小数部分。(对)7、C语言中,在进行混合运算时,数据类型由高级向低级转换。(错)8、C语言中,putchar函数的功能是把一字节代码输出到标准输出设备。(对)9、C语言中,字符数据用格式说明“%c”来输出,字符串数据用格式说明“%s”来输出。(对)10、C语言中,输入数据的个数和类型必须与scanf函数中的说明符一一对应。(对)11、字符数据与整型数据可互相赋值。(对)12、C语言中字符串可以分行书写。(错)13、二元运算符均可以和赋值运算符构成复合的赋值运算符。(对)14、使用(int)a;将float型变量a强制转换成int型,以后a的数据类型为float型。(错)15、一个C语言程序是由_________组成。(C)A.主程序B.子程序C.函数D.过程16、以下叙述正确的是_________。(D)A.在C程序中,main函数必须位于程序的最前面。B.C程序的每一行中只能写一条语句。C.在对一个C程序进行编译的过程中,可发现注释中的拼写错误。D.C语言本身没有输入输出语句。17、C语言中,最简单的数据类型是_________。(B)A.整型、实型、逻辑型。B.整型、实型、字符型。C.整型、字符型、逻辑型。D.整型、实型、逻辑型、字符型。18、_________是C语言提供的合法的数据类型关键字。(B)A.FloatB.signedC.integerD.Char19、不正确的字符串常量是_________。(A)A.'abc'B."12'12"C."0"D.""20、若有intk=7,x=12;,则能使值为3的表达式是_________。(D)A.x%=(k%=5)B.x%=(k-k%5)C.x%=k-k%5D.(x%=k)-(k%=5)21、为了计算s=10!,则定义变量s时应该使用的数据类型是_________。(C)A.intB.unsignedC.longD.以上三种类型均可22、对于int型变量k1,k2,k3,k4,若用以下语句:scanf("%d%d",&k1,&k2);scanf("%d,%d",&k3,&k4);将10赋给k1,k3,将20赋给k2,k4,则应按____格式输入数据。A.1020<CR>1020<CR>B.1020<CR>1020<CR>(D)C.10,20<CR>10,20<CR>D.1020<CR>10,20<CR>23、函数putchar()可以向终端输出一个_______。(D)A.整型变量表达式值B.实型变量值C.字符串D.字符或字符型变量值24、有定义语句:intx,y;,若要通过scanf("%d,%d",&x,&y);语句使变量x得到数值11,变量y得到数值12,下面四组输入形式中,正确的是_______。(D)A.1112<CR>B.12,11<CR>C.1112<CR>D.11,<CR>12<CR>25、下列关于C语言用户标识符的叙述中正确的是_______。(B)A.用户标识符中可以出现下划线和中划线(减号)。B.用户标识符中不可以出现中划线,但可以出现下划线。C.用户标识符中可以出现下划线,但不可以放在用户标识符的开头。D.用户标识符中可以出现下划线和数字,它们都可以放在用户标识符的开头。26、有以下程序段:intm=0,n=0;charc='a';scanf("%d%c%d",&m,&c,&n);printf("%d,%c,%d\n",m,c,n);若从键盘上输入:10A10<CR>,则输出结果是_______。(A)A.10,A,10B.10,a,10C.10,a,0D.10,A,027、已知i、j、k为int型变量,若从键盘输入:1,2,3<CR>,使i的值为1,j的值为2,k的值为3,以下选项中正确的输入语句是_______。(C)A.scanf("%2d%2d%2d",&i,&j,&k);B.scanf("%d%d%d",&i,&j,&k);C.scanf("%d,%d,%d",&i,&j,&k);D.scanf("i=%d,j=%d,k=%d",&i,&j,&k);28、一个C语言的语句至少应包含一个_______。??;29、在一个C源程序中,注释部分两侧的分界符分别为__________。\**\30、以下程序的运行结果为__________。#include<stdio.h>main(){printf("*%f,%4.3f*\n",3.14,3.1415);}*3.140000,3.142*31、以下程序的运行结果为________________。#include<stdio.h>main(){charc='x';printf("c:dec=%d,oct=%o,hex=%x,ASCII=%c\n",c,c,c,c);//a的ASCII码为61H}c:dex=120,oct=170,hex=78,ASCII=x32、以下程序的运行结果为____________。9.300000#include<stdio.h>#include"math.h"main(){inta=1,b=4,c=2;floatx=5.5,y=9.0,z;z=(a+b)/c+sqrt((double)y)*1.2/c+x;printf("%f\n",z);}33、已知字符A的ASCII码值为65,以下语句的输出结果是_________。charch='B';

printf("%c%d\n",ch,ch);B6634、两个变量交换数据时常使用一个中间变量。(对)35、C语言规定,else总是与它上面最近的if配对。()36、所有关系运算符的运算优先级相同。(错)37、执行a=0;if(0);a=3;后a的值为3。(对)38、if(表达式)语句1else语句2结构中,如表达式为a>10,则else的条件隐含为a<10。(错)39、switch…case结构中条件表达式和常量表达式值可以为float类型。(错)40、可以用swicth结构实现的程序都可以使用if语句来实现。(对)41、若x、i、j都是int型变量,则执行下面表达式i=3,j=i+6,x-=j+=i后x的值为_________。A.2B.15C.10D.3(B)42、执行下面语句后i,j,x的值为_________inti,j,x;i++-++j,x=j++-++i;(C)A.0,0,0B.1,1,2C.2,2,-1D.1,2,343、判断char型变量ch是否为大写字母的正确表达式是_______。(C)A.A'<=ch<='Z'B.(ch>='A')&(ch<='Z')C.ch>='A')&&(ch<='Z')D.('A'<=ch)AND('Z'>=ch)44、设x、y和z是int型变量,且x=3,y=4,z=5,则下面表达式中值为0的是_______。A.x'&&'y'B.x<=yC.x||y+z&&y-zD.!((x<y)&&!z||1)(D)45、在C语言中,要求运算数必须是整型的运算符是_______。(D)A./B.++C.!=D.%46、下面程序段的输出是_______。(C)inta=-1,b=4,k;k=(a++<=0)&&(!b--<=0);printf("%d,%d,%d",k,a,b);0,0,3B.0,1,2C.1,0,3D.1,1,2已知intx=10,y=20,z=30;,以下语句执行后x,y,z的值是_______。(B)

if(x>y)z=x;x=y;y=z;printf("%d,%d,%d",x,y,z);A.10,20,30B.20,30,30C.20,30,10D.20,30,2048、当a=1,b=3,c=5,d=4,x=0时,执行完下面一段程序后x的值是_______。(A)if(a>b)if(c<d)x=1;elseif(a>c)if(b<d)x=2;elsex=3;elsex=6;elsex=7;A.7B.2C.3D.649、下面程序的输出是_______。(B)main(){intx=100,a=1,b=20,v1=5,v2=0;if(a<b)if(b!=15)if(!v1)x=1;elseif(v2)x=10;x=-1;printf("%d",x);}A.100B.-1C.1D.1050、以下程序的输出是_______。(B)main(){intx=1,y=0,a=0,b=0;switch(x){case1:switch(y){case0:a++;break;case1:b++;break;}case2:a++;b++;break;case3:a++;b++;}printf("\na=%d,b=%d",a,b);}A.a=1,b=0B.a=2,b=1C.a=1,b=1D.a=2,b=251、有以下程序:main(){inta=1,b=2,m=0,n=0,k;k=(n=b>a)||(m=a<b);printf("\n%d,%d\n",k,m);}程序运行后的输出结果是_______。(C)A.0,0B.0,1C.1,0D.1,152、有以下程序:main(){intx=13,y=15;printf("%d\n",x%=(y/=2));}执行后输出结果是_______。(C)A.3B.2C.1D.053、以下程序的运行结果是_____________________。1,1#include<stdio.h>main(){intz,y,x;x=1;y=2;z=3;x=y--<=x||x+y!=z;printf("%d,%d",x,y);}54、以下程序执行后的输出结果是__________________。yesmain(){inta=1,b=3,c=5;if(c=a+b)printf("yes\n");elseprintf("no\n");}55、若运行程序时输入数据为:60<CR>,则以下程序执行后的输出结果是____。606060main(){inta;scanf("%d",&a);if(a>50)printf("%d",a);if(a>40)printf("%d",a);if(a>30)printf("%d",a);}56、以下程序执行后的输出结果是__________________。0main(){inta=5,b=4,c=3,d;d=(a>b>c);printf("%d\n",d);}57、C语言中,do-while语句构成的循环只能用break语句退出。(错)58、从语法角度看,for(表达式1;表达式2;表达式3)语句中的3个表达式均可省略。59、由i=-1;while(i<10)i+=2;i++;可知此while循环的循环体执行次数为6次。

60、循环for(;;)的循环条件始终为真。(对)61、do…while语句的循环体至少执行1次,while和for循环的循环体可能一次也执行不到。(对)62、break;语句执行时退出本层循环,continue;语句结束本次循环。(对)63、for循环、while循环和dowhile循环结构之间可以相互转化。(对)64、执行下面语句后x的值为_________inti=1,j=2,x=3;x=(i<j<x)&&(i>j>x)&&(i>j<x)||(i<j>x);65、执行下面语句后x的值为_________inti=5,x;if(i>0)x=1;elseif(0<i<4)x=2;elseif(5<=i<8)x=3;elseif(i>=8x=4;elsex=5;66、执行下面语句后x的值为_________inti=4,x;switch(i<=0?1:i<=3?2:i<=5?3:i<=7?4:5){case1:x=5;break;case2:x=4;break;case3:x=3;break;case4:x=2;break;default:x=1;}67、执行下面程序后输出结果为_________#include"stdio.h"voidmain(){inti=4,x=0;for(;i<6;i++)x+=i;printf("%d",x);}68、执行下面程序后输出结果为_________voidmain(){inti=0,x=0;dox-=i++;while(++i<5);printf("%d",x);}69、执行下面程序后输出结果为_________voidmain(){inti=0;while(i++^7);printf("%d",i);}70、'执行下面程序后输出结果为_________(C)voidmain(){chara[]="ABCD";inti=0;while(a[++i]!='\0')printf("%c",a[i]);}A."ABCD"B.C.BCDD.ABC71、下列程序的输出结果是_______。(B)main(){intk=0,m=0,i,j;for(i=0;i<2;i++){for(j=0;j<3;j++)k++;k-=j;}m=i+j;printf("k=%d,m=%d",k,m);}A.k=0,m=3B.k=0,m=5C.k=1,m=3D.k=1,m=572、下列程序的输出结果是_______。(B)main(){intx=9;for(;x>0;x--){if(x%3==0){printf("%d",--x);continue;}}}A.741B.852C.963D.87542173、循环语句for(a=0,b=0;a<3&&b!=3;a++);_______。(C)A.是无限循环B.循环次数不定C.循环3次D.循环4次74、下面程序的运行结果是_____。(D)main(){inti,b,k=0;for(i=1;i<=5;i++){b=i%2;while(b-->=0)k++;}printf("%d,%d",k,b);}A.3,1B.8,1C.3,0D.8,-275、以下程序执行后的输出结果是_____。(D)main(){inti,s=0;for(i=1;i<10;i+=2)s+=i+1;printf("%d\n",s);}

A.自然数1~9的累加和B.自然数1~10的累加和C.自然数1~9中奇数之和D.自然数1~10中偶数之和76、以下程序的功能是:按顺序读入10名学生4门课程的成绩,计算出每位学生的平均分并输出,程序如下:(A)main(){intn,k;floatscore,sum,ave;sum=0.0;for(n=1;n<=10;n++){for(k=1;k<=4;k++){scanf("%f",&score);sum+=score;}ave=sum/4.0;printf("A.sum=0.0;B.sum+=score;C.ave=sum/4.0;D.printf(NO%d:%f\n",n,ave);77、以下程序执行后的输出结果是_____。(B)#include<stdio.h>main(){inti=0,a=0;while(i<20){for(;;){if((i%10)==0)break;elsei--;}i+=11;a+=i;}printf("%d\n",a);}A.21B.32C.33D.1178、'以下程序若运行时输入2.0,则输出结果为_______________。0.500000main(){floata,b;scanf("%f",&a);if(a<0.0)b=0.0;elseif((a<0.5)&&(a!=2.0))b=1.0/(a+2.0);elseif(a<10.0)b=1.0/a;elseb=10.0;printf("%f\n",b);}79、以下程序执行后的输出结果是______。132main(){inti,m=0,n=0,k=0;for(i=9;i<=11;i++)switch(i/10){case0:m++;n++;break;case10:n++;break;default:k++;n++;}printf("%d%d%d\n",m,n,k);}80、以下程序执行后的输出结果是______________。17main(){intx=15;while(x>10&&x<50){x++;if(x/3){x++;break;}elsecontinue;}printf("%d\n",x);}81、下列程序的运行结果是________。?s=3main(){ints=0,k;for(k=7;k>4;k--){switch(k){case1:case4:case7:s++;break;case2:case3:case6:break;case0:case5:s+=82、下面程序的功能是将从键盘输入的两个数由小到大排序输出。当输入两个相等数时结束循环,请填空完成程序。a!=bmain(){inta,b,t;scanf("%d,%d",&a,&b);while(______________){if(a>b){t=a;a=b;b=t;}printf("%d,%d\n",a,b);scanf("%d,%d",&a,&b);}}83、C语言中,数组元素的下标是从1开始的,下标不能越界。(错)

84、C语言中,数组元素在内存中是顺序存放的,它们的地址是连续的。(对)85、C语言中,用格式符“%s”输入字符数组时,数组名前不能加&。(对)86、C语言中, gets()函数的返回值是用于存放输入字符串的字符数组首地址。(错)87、二维及多维数组在定义的同时给数组赋初值时,可以省略数组的各维长度。(错)88、使用字符串处理函数strcmp需要包含头文件string.h。(对)89、设有inta;charabc[5]="abcd";则a=strlen(“ABC”);执行后a的值为5。(错)90、'以下程序执行后输出结果是_______。(B)main(){intaa[4][4]={{1,2,3,4},{5,6,7,8},{3,9,10,2},{4,2,9,6}};inti,s=0;for(i=0;i<4;i++)s+=aa[i][1];printf("%d\n",s);}A.11B.19C.13D.2091、以下程序的执行后输出结果是_______。(C)main(){intm[][3]={1,4,7,2,5,8,3,6,9};inti,j,k=2;for(i=0;i<3;i++){printf("%d",m[k][i]);}}A.456B.258C.369D.78992、以下对一维整型数组a的正确说明是_______。(D)A.inta(10);B.intn=10,a[n];C.intn;scanf("%d",&n);inta[n];D.#defineSIZE10inta[SIZE];93、有inta[10]={6,7,8,9,10};对以下说明语句的正确理解是_______。(B)A.将5个初值依次赋给a[1]至a[5]B.将5个初值依次赋给a[0]至a[4]C.将5个初值依次赋给a[6]至a[10]D.因为数组长度与初值的个数94、下面程序段的运行结果是_______。(D)chara[7]="abcdef";charb[4]="ABC";strcpy(a,b);printf("%c",a[5]);A.一个空格B.\0C.eD.f95、有下面程序段,则_______。(D)chara[3],b[]="China";a=b;printf("%s",a);A.运行后将输出ChinaB.运行后将输出ChC.运行后将输出ChiD.编译出错96、下面程序段是输出两个字符串中对应字符相等的字符。请选择填空。(A)charx[]="programming";chary[]="Fortran";inti=0;while(x[i]!='\0'&&y[i]!='\0'){if(x[i]==y[i])printf("%c",__________);elsei++;}A.x[i++]B.y[++i]C.x[i]D.y[i]97、下面程序_______。(C)main()/*第1行*/{inta[3]={0},i;/*第2行*/(i=0;i<3;i++)scanf("%d",&a[i]);/*第3行*/for(i=0;i<4;i++)a[0]=a[0]+a[i];/*第4行*/("%d\n",a[0]);}A.没有错误B.第3行有错C.第4行有错D.第5行有错98、以下程序的执行后输出结果是_______。(C)main(){intm[][3]={1,4,7,2,5,8,3,6,9};inti,j,k=2;for(i=0;i<3;i++){printf("%d",m[k][i]);}}A.456B.258C.369D.78999、以下程序是求矩阵a和b的和,结果存入矩阵c中并按矩阵形式输出。请填空。main()a[i][j]+b[i][j]{inta[3][4]={{3,-2,7,5},{1,0,4,-3},{6,8,0,2}};intb[3][4]={{-2,0,1,4},{5,-1,7,6},{6,8,0,2}};inti,j,c[3][4];for(i=0;i<3;i++)for(j=0;j<4;j++)c[i][j]=______________;for(i=0;i<3;I100、下面程序的运行结果是_______。aabcd#include"stdio.h"main(){inti=5;charc[6]="abcd";do{c[i]=c[i-1];}while(--i>0);puts(c);}101、C语言中,实参可以是常量、变量或表达式。(对)102、C语言中,实参的个数、类型和位置必须与形参的定义一一对应。(对)103、C语言中, 编译预处理后所有的符号常量名和宏名都用相应的字符串替换。(对)104、不论使用何种参数传递方式,形参变量值的改变都不影响实参变量的值。(错)105、函数可以嵌套定义,也可以嵌套调用。(错)106、宏展开不作语法检查,展开时不替换关键字和常量。(对)107、下面能正确进行字符串赋值操作的是_______。(C)A.chars[5]={"ABCDE"};B.chars[5]={'A','B','C','D','E'};B.char*s;s="ABCDE";D.char*s;scnaf("%s",&s);108、以下正确的函数定义形式是_______。(A)A.doublefun(intx,inty)B.doublefun(intx;inty)C.doublefun(intx,y)D.doublfun(intx,y;)109、以下程序的正确运行结果是_______。(D)main(){inta=2,i;for(i=0;i<3;i++)printf("%3d",f(a));}f(inta){intb=0;staticintc=3;b++;c++;return(a+b+c);}A.777B.71013C.7911D.789110、以下有关宏替换的叙述不正确的是_______。

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论