C语言程序设计综合练习题集.doc
《C语言程序设计综合练习题集.doc》由会员分享,可在线阅读,更多相关《C语言程序设计综合练习题集.doc(17页珍藏版)》请在咨信网上搜索。
(word完整版)C语言程序设计综合练习题集 《C语言程序设计》综合练习题 一、单选题 1。 C语言中基本数据类型有 .C A) 整型、实型、逻辑型 B)整型、字符型、逻辑型 C) 整型、实型、字符型 D)整型、实型、字符型、逻辑型 2。 在C语言中,数字O29是一个 。A A) 八进制数 B) 十进制数 C) 十六进制数 D) 非法数 3. 在以下关于C语言的不严格的叙述中,错误的说法是 .A A) 在标识符中,大写字母和小些字母的意义相同 B) 有些不同类型的变量可以在一个表达式中运算 C) 在赋值表达式中等号 “="左边的变量和右边的值可以是不同类型 D) 同一个运算符号在不同的场合可以有不同的含义 4. 下列关于C语言用户标识符的叙述中正确的是 .B A)用户标识符中可以出现下划线和中划线(减号) B)用户标识符中不可以出现中划线,但可以出现下划线 C)用户标识符中可以出现下划线,但不可以放在用户标识符的开头 D)用户标识符中可以出现下划线和数字,它们都可以放在用户标识符的开头 【解析】考查C语言中的用户标识符规则,在C语言程序设计中,用户标识符是由字母、数字和下划线组成的,并且第一个字符必须是字母或下划线。 5. 结构化程序设计方法中有三种基本控制结构,以下不正确的是 。D A) 顺序结构 B) 选择结构 C) 循环结构 D) 数组结构 6。 C语言提供的合法关键字是 .D A) swicth B) cha C) Case D) default 7.以下非法的赋值语句是 C A) n=(i=2,++i); B)j++; C) ++(i+1); D)x=j〉0; 【解析】对表达式不能进行自加自减运算。 8。在以下一组运算符中,优先级最高的运算符是 。 A) <= B) = C) % D) && 【解析】C语言常用的积累运算符的优先级关系是:逻辑非“!"〉算术运算符〉关系运算符〉逻辑与“&&”>逻辑或“||”〉赋值运算符〉逗号运算符。由于C选项为求余运算符,所以本题正确答案为C选项。 9. 以下四个选项中不能看作一条语句的是 。D A) {; } B) a=0,b=0,c=0; C) if(a>0) D) if(b==0)m=1;n=2; 【解析】C语言的基本语句包含控制语句、表达式语句、空语句、复合语句、函数调用语句。控制语句:完成一定的控制功能,C语言有9种控制语句,分别是if-else、while、continue、 switch、return、for、do-while、break、goto; 表达式语句:由各类表达式构成,后面加上一个分号,就可以单独作为一条语句出现在一行,多数情况下含赋值运算符. 复合语句:由一对大括号将一组语句序列括起来形成一个程序段,经常出现在选择或循环语句中。 空语句:只有一个分号,表示什么也不做。 函数调用语句:由函数名、圆括号内加实参表和分号组成。 本题中D选项为三条语句,一条控制语句,链条表达式语句。正确答案为D选项。 10。 能将高级语言编写的源程序转换为目标程序的软件是 。D A) 汇编程序 B) 编辑程序 C) 解释程序 D) 编译程序 11。以下选项中合法的实型常数是 。C A) 5E2。0 B) E-3 C) .2E0 D) 1。3E 【解析】以指数形式表示实数时,字母e或E之前必须有数字,且e后面指数必须为整数. 12.依据C语言的语法规则,下列合法标识符是 A A)Else B)else C)user$2 D)5_examp 【解析】标识符的定义有明确的规则:(1)标识符只能由字母、数字、下划线三者构成;(2)标识符的首字符必须是字母或者下划线;(3)标识符命名对字母大小写敏感;(4)标识符定义不能和C语言关键字(Key Words)相同。C语言中标识符对大小写敏感,sum和SUM是不同的标识符。 13。以下选项中合法的用户标识是 。 A) long B) _2Test C) 3Dmax D) A.dat 【解析】选项中A为保留字;选项C没有以字母或者“_”开头;选项D中不能有“。” 14.在C语言中,字符型数据在内存中的存储形式是 。D A) 原码 B) 补码 C) 反码 D) ASCII码 【解析】数据在内存中是以二进制形式存放的。数值是以补码表示的.c的char数据属于基本类型,在内存中字符的存储实际上是把字符相对应的ASCII代码放到存储单元中的.而这些ASCII代码值在计算机中也是以二进制形式存放的.这个与整型的存储很相似.因此这两类之间的转换也比较方便!整型:一个正数的补码和其原码的形式相同。而负数的补码方式是将其绝对值的二进制形式“按位求反再加1”; 实型:在内存中占4个字节,是按照指数形式存储的,实型数据分为小数部分和指数部分,分别存放!计算机用二进制表示小数部分,用2的幂次来表示指数部分! 15.以下非法的赋值语句是 。C A) n=(i=2,++i); B) j++; C) ++(i+1); D) x=j〉0; 【解析】对表达式不能进行自加自减运算。 16.已定义c为字符型变量,则下列正确的赋值语句是 。D A) c=’66'; B) c=”66”; C) c=”B”; D) c=66; 17。已知小写字母的ASCII码为97,对于int a=99, b='b’; printf(“%c,%d”, a , b);的结果是 。B A) 99, b B) c, 98 C) 99, 98 D) c, b 【解析】字符类型变量用char来定义,特别要注意字符数据在内存中的存储方式:字符数据在内存中是用字符对应的ASCII码存储,其存储形式实质是采用整数形式,由于ASCII码集合中有256个字符,因此用0~255这个范围内的256个整数分别与每个字符对应。因此字符型数据和整型数据在一定范围(0~255)内,形式上可以相互引用。表现在这两种类型的变量能够以对方形式常量来赋值,以对方的形式来输出,还可以同时出现在算数表达式中参与运算 int n='a'; /*相当于n=97*/ char c=65; /*相当于c='A',A的ASCII码是65*/ printf(”n=%d,n=%c”,n,n); /*输出:c=97,n=a*/ printf(”c=%d,c=%c”,c,c); /*输出:n=65,n=A*/ 虽然字符型数据和整型数据在一定范围内可以通用,但其外在表现形式并不影响各自的数据类型,上例中n本质上还是整型变量,c本质上还是字符型变量。 18。若变量a和i已正确定义,且i已正确赋值,合法的语句是 。B A) a=1 B) ++i; C) a=a++=5 D) a=int(i) 【解析】C语言的语句必须以分号结束,选项A是错误的.赋值表达式等号的左边只能是变量,而不能是表达式,选项C中含有a++=5,是错误的.选项D中的强制转换类型必须用圆括号将int括起来,也是不正确的。 19.假定x和y为double型,则表达式x=2,y=x+3/2的值是 .D A) 3。500000 B) 3 C) 2。000000 D) 3。000000 【解析】算出来结果为3,排除A和C选项;又因为是double型,所以D选项为正确答案。 20。以下程序的输出结果是 .C main() { int a=5,b=4,c=6,d; printf(“%d\n”,d=a>b?(a>c?a:c):(b)); } A) 5 B) 4 C) 6 D) 不确定 【解析】本题考察条件表达式.简单的条件表达式(条件表达式?表达式1:表达式2)可以用来代替if语句进行赋值。详见教材102页. 21.设a=3,b=4,c=-5,则逻辑表达式:a || b+c && b==c 的值是 。B A) 1 B) 0 C) 非0 D) 语法错 【解析】运算符优先级由高到底为算术运算符—--关系运算符---&&和||———赋值运算符。其中&&和||的结合方向为从左到右 22.表示关系x<=y〈=z的c语言表达式为 .A A) (x<=y)&&(y<=z) B) (x<=y)AND(y<=z) C) x<=y<=z D) (x<=y)&(y〈=z) 【解析】C语言中没有关键字AND,逻辑与运算符是&&,不是AND,因此选项B是错误的;而&是C语言的位与运算符,因此选项D是错误的;选项C是数学表达式,也是错误的。 23。设有变量int x=0,y=1,z=1,则运行表达式:x=y++〉z—-后,x,y,z的值分别是 。D A) 1,1,1 B) 1,2,0 C) 0,1,1 D) 0,2,0 【解析】注:前缀是先增值后引用,后缀是先引用再增值 24。已知 int a=4,b=5; ,执行表达式 a=a〉b 后,变量a的值为 。A A)0 B)1 C)4 D)5 【解析】C语言常用的积累运算符的优先级关系是:逻辑非“!”>算术运算符>关系运算符>逻辑与“&&”>逻辑或“||"〉赋值运算符>逗号运算符。由于关系运算符优先级别高于赋值运算符,所以先执行a>b,得到结果为假,即0,所以变量a的值为0。 25.能正确表示逻辑关系“a≥10或a≤0"的C语言表达式是 .B A) a〉=10 or a<=0 B) a>=10 || a<=0 C) a〉=10 && a〈=0 D) a〉=10 | a〈=0 26。设有定义 int a=3,b=4,c=5; ,则以下表达式中,值为0的表达式是 。D A) a&&b B) a<=b C) a||b+c&&b—c D) !((a<b)&&!c||1) 27。以下合法的赋值语句是 。B A)x=(1,y=2); B)++x; C)x=y=15; D)y=int(x); 28.以下选项中,与k=n++完全等价的表达式是 。A A) k=n,n=n+1 B) n=n+1,k=n C) k=++n D) k+=n+1 【解析】在本题中,k=n++为后辍运算,根据其运算规则,应先把n的值赋给k,然后n的值再加上1,选项A的表达式与本题中的表达式等价。 29。若有定义:“int a=8,b=5,c;",执行语句“c=a/b+0.4"后,c的值为 。 A) 1.4 B) 1 C) 2。0 D) 2 【解析】由于a,b,c都是整型变量,所以每一步计算都要取整,所以选B。 不同类型数据间是可以进行转换和运算的。 整型、字符型、实型数据可以混合运算,如果表达式内的运算量的类型不同,不同类型的数据要先转换成同一类型,在进行运算。转换方向由低到高为:char/short、int、unsigned、long、float、double。当然也可以使用强制类型转换符来转变类型,但变量本身的类型并未发生变化。 例如:(double)n,(int)(a+b)。 30.设所有变量均为整型,则表达式(a=2,b=5,a++,b++,a+b)的值是 。C A) 7 B) 8 C) 9 D) 10 31。已定义c为字符型变量,则下列语句中正确的是 。D A)c=’97'; B)c=”97"; C)c=”a"; D)c=97; 32。已知 char ch='A'; 且表达式 ch=(ch〉=’A’ && ch〈='Z’)?(ch+32):ch的值是 。B A) A B)a C) Z D)出错 【解析】考察条件表达式。见教材102页。首先执行(ch〉=’A' && ch〈='Z'),为1.接着执行(ch+32)。因此结果是小写字母a。 33。设有如下程序段: int x=2, y=3; printf(”%d\n",(x,y)); 则以下叙述中正确的是 。B A)输出语句中格式说明符的个数少于输出项的个数,不能正确输出 B)运行时产生出错信息 C)输出值为2 D)输出值为3 34.对于循环 for (k=16; k>0; k-=3) putchar(‘*’); 输出是 。B A)***** B)****** C)******* D)无限循环 【解析】在k分别为16,13,10,7,4,1的时候,分别输出一个*.putchar()函数(字符输出函数)的作用是向终端输出一个字符。用putchar()函数可以输出能在屏幕上显示的字符,也可以输出控制字符,如putchar(’\n’)的作用是输出一个换行符,使输出的当前位置移到下一行的开头. 35.已知int i=1;执行语句while(i++<4)后,变量i的值为 。C A) 3 B) 4 C) 5 D) 6 【解析】i++是先进行其他运算,运算终了后再将i加1。 所以循环中过程如下: i=0 判断i<4:成立 i=i+1,于是i=1 继续循环:判断i<4:成立 i=i+1,于是i=2 继续循环:判断i〈4:成立 i=i+1,于是i=3 继续循环:判断i<4:成立 i=i+1,于是i=4 继续循环:判断i<4:不成立 i=i+1,于是i=5 跳出循环,程序结束 36。已知:int a[ ][3]={1,2,3,4,5,6,7,8,9,0}; 则数组a的第一维的大小是 .C A)2 B)3 C) 4 D)无法确定; 【解析】此数组共3列。应该是 在C语言中如果对全部元素都赋初值(即提供全部初始数据),则定义数组时对第一维的长度可以不指定,但第二维的长度不能省。系统会根据总个数和第二维的长度算出第一维的长度。本题中一共有10个元素,每行3列,显然可以确定行数为4。见教材138. 37.判断字符串的长度,应该使用的函数是 。 A) strcat B) strcmp C) strcpy D) strlen 【解析】 strlen(string ) ———字符串长度 strcpy(字符数组1,字符串2) ———STRingCoPY(字符串复制)的简写.它是“字符串复制函数”,作用是将字符串2复制到字符数组1中去。见教材147页。 strcat(字符数组1,字符数组2) —-—(字符串连接)其作用是连接两个字符数组中的字符串,把字符串2接到字符串1的后面,结果放在字符数组1中,函数调用后得到一个函数值——-字符数组1的地址。 strcmp(string ,string ) -—-比较2个字符串,0为相同,〉0前1个大,<0后1个大 38.初始化多维数组的语句中,可以默认的是 。B A)最后一个下标界 B)第1个下标界 C)第2个下标界 D)以上都不对 39。若有:int a[10],*p=&a[0];,关于数组名a的不正确的说法是 。A A)a是个数组指针 B)数组名a表示数组的首地址 C)数组名a与a[0]等价 D)a和p都指向同一个存储单元 【解析】一个变量有地址,一个数组包含若干元素,每个数组元素都在内存中占用存储单元,它们都有相应的地址.指针变量即然可以指向变量,当然也可以指向数组元素(把某一元素的地址放到一个指针变量中)。所谓数组元素的指针就是数组元素的地址.在本题中,定义a为包含10个整型数据的数组,定义p为指向整型变量的指针变量。并且把a[0]元素的地址赋给指针变量p,也就是使p指向a数组的第0号元素.C语言规定数组名代表数组中首元素的地址。因此下面两个语句等价: P=&a[0]; p=a;注意数组名a不代表整个数组,上述“p=a;"的作用是“把a数组的首元素的地址赋给指针变量p”而不是“把数组a各元素的值赋给p”。 40.设有定义int a[ ]={1,5,7,9,11,13},*p=a+3;则*(p-2),*(a+4)的值是 。A A)5 11 B)1 9 C)5 9 D)有错误 【解析】因为*p=a+3它的作用是将a数组第4个元素a[3]的地址赋给指针变量p(而不是赋给*p),a代表数组首元素的地址,a+3代表数组中的第4个元素a[3]。在数组中的对应关系如下图。 按C语言的规定:如果指针变量p已指向数组中的一个元素,则p+1指向同一数组中的下一个元素,而不是将p的值(地址)简单的加1。 另外,如果p的初值为&a[0],则p+i和a+i就是a[i]的地址,或者说,它们指向a数组的第i个元素,这里需要特别注意的是a代表数组首元素的地址。 *(p+i)或*(a+i)是p+i或a+i所指向的数组元素,即a[i]。在本题中*(a+4)=a[4]=11详见教材230页. 41.C语言中,函数返回值的类型是由 。B A)return语句中的表达式类型决定 B)调用函数的主调函数类型决定 C)调用函数时的临时类型决定 D)定义函数时所指定的函数类型决定 42。执行下面程序: main() { int x=1,y=1,z=1; x=x++ +y++ +z++; printf("%d, %d , %d”,x,++y,z++); } 输出的结果为 .A A) 4,3,2 B) 3,3,2 C) 3,3,3 D) 3,2,2 【解析】语句x=x++ +y++ +z++;中++运算符均为后缀,所以是先引用后增值,此语句又可写为x=x+y+z;x++;y++;z++; 这样我们便很容易看出结果为x=4;y=2;z=2。 43。以下程序段的输出结果是 。A int m=10; while(m>7) { m—-; printf(“%d\n”,m); } C)9 8 7 6 B)10 9 8 7 A)9 8 7 D)10 9 8 【解析】复习一下while循环的执行过程: (1)计算while一对圆括号中表达式的值.当值为非零时,执行步骤(2);当值为零时,执行步骤(4)。 (2)执行循环体中语句. (3)转去执行步骤(1)。 (4)退出while循环。 由以上while循环的一般过程来看,只有当while后面的括号中表达式的值为零时才停止循环。本题中,当m=7是循环停止,也就是说最后一个输出的应是7.开始m被赋予10,进入循环体,由于m-—;所以m自减1为9,所以第一个输出的应是9。 44.若有如下程序段,其中s、a、b、c均已定义为整型变量,且a、c均已赋值(c大于0) s=a; for(b=1;b<=c;b++) s=s+1;则与上述程序段功能等价的赋值语句是 .B A) s=a+b; B) s=a+c; C) s=s+c; D) s=b+c; 【解析】掌握两点:一、a赋给了s;二、s执行c次自加;所以最终相当于将a+c赋给了s。 45。以下程序中,while循环的循环次数是 。D main() { int i=0; while(i〈10) { if(i〈1)continue; if(i==5)break; i++; } …… } A) 1 B) 10 C) 6 D) 死循环,不能确定次数 【解析】在循环中,如果执行continue,将直接开始下一次循环,不继续执行continue下面的语句. 进入循环时,i=0,当执行到if(i<1)continue;一句时,将执行continue命令,直接开始下一次循环,i的值始终没有变,循环条件(i<10)将一直满足下去。所以,程序将一直无法退出循环,即死循环。 46。当对两个字符串进行比较时,应该使用的函数是 。B A) strcat B) strcmp C) strcpy D) strlen 47.若有定义“int k,*q;”,则下列各选项中赋值表达式正确的是 。B A) q=(&k+1) B) q=&k C) q=k D) *q=&k 【解析】(1)本题的定义语句中,在q前面有一个*号说明符,表示q是一个指针变量,而C语言规定,在指针变量中只能存放存储单元(即变量)的地址。 (2)因为在定义中,q的基类型为int,所以q中只能存放int类型变量的地址。 (3)在C程序中&号是求地址符,表达式&k的值是变量k在内存中的地址,而*号的作用是求地址指向单元的值. (4)现在来看看选项C和D.C中,是把整型变量直接赋给指针变量q,由于赋值不兼容性,这是错误的。D中,企图把k的地址赋给一个整型变量(*p在此可代表一整型变量),这也是不允许的,地址值不可能转换为一个整数. (5)关于A,还得声明一点,地址符&只能应用于变量和以后将要介绍的数组元素,不可以用于表达式,常量或者被说明为register的常量。因此A也不正确。 (6)那答案只能是B,因为此处q中只能存放int类型的地址,而k是int型,&k又是k的地址,B当然是正确的。 48。若有以下定义:char s[20]= “programming”,*ps=s;则不能代表字符g的表达式是 。A A) ps+3 B) s[3] C) ps[3] D) ps+=3,*ps 【解析】 1、C语言对字符串常量是按字符数组处理的,在内存中开辟了一个字符数组用来存放该字符串常量。 2、指向数组的指针变量也可以带下标,如p[i]与*(p+i)等价。详见教材231页. 49.以下能正确定义数组并正确赋初值的语句是 .C A) int N=5,b[N][N]; B) int a[1][2]={{1},{3}}; C) int c[2][]= {{1,2},{3,4}}; D) int d[3][2]={{1,2},{34}}; 【解析】如果对全部元素都赋初值 (即提供全部初始数据),则定义数组时对第一维的长度可以不指定,但第二维的长度不能省!系统会根据总个数和第二维的长度算出第一维的长度。 详见教材p138 50.假设已定义 char c[8]= ”test”;int i; 则下面的输出函数调用中错误的是 。D A) printf(”%s",c); B) for(i=0;i<8;i++) printf(”%c",c[i]); C) puts(c) D) for(i=0;i<8;i++) puts(c[i]); 【解析】首先A、B两个选项是没有问题的,puts函数一般形式为puts(字符数组),其作用是输出字符串,所以D选项是错误的。 51。下程序段:char s[20 ]="xyz”, *sp=s; strcat(sp,”12345"); puts(sp);的输出结果是 。A A) xyz12345 B) 12345xyz C) 12345 D) xyz 【解析】strcat(字符数组1,字符数组2)-—-(字符串连接)其作用是连接两个字符数组中的字符串,把字符串2接到字符串1的后面,结果放在字符数组1中,函数调用后得到一个函数值-—-字符数组1的地址。 52。 在执行int a[ ][3]={{1,2},{3,4}}; 语句后a[1][2]的值是 。C A. 3 B。 4 C。 0 D. 2 【解析】考查知识点:二维数组的初始化int a[ ][3]={{1,2},{3,4}}; 初始化的数组元素如下: 53.已知:int a[ ][3]={1,2,3,4,5,6,7,8,9,0}; 则数组a的第一维的大小是 。C A. 2 B. 3 C。 4 D. 无法确定; 【解析】此数组共3列。应该是 在C语言中如果对全部元素都赋初值(即提供全部初始数据),则定义数组时对第一维的长度可以不指定,但第二维的长度不能省。系统会根据总个数和第二维的长度算出第一维的长度.本题中一共有10个元素,每行3列,显然可以确定行数为4.见教材138。 54。设有定义语句:char str[][20]={”Hello”,"Beijing”},*p=str; 则printf(”%d\n",strlen(p+20));输出结果是 。C A)0 B) 5 C)7 D)20 【解析】数组char str[][20]实际上是一个2行20列的字符数组。*p正好指向H,一个英文字母占一个字节,这样p+20就指向第二行的第一列,也就是”Beijing"的B,所以输出结果是7。注意:虽然第一行,第二行都没有排满,但Hello其后是0,而不是空格。 55。用数组名作为函数调用时的实参,则实际传递给形参的是 。C A) 数组的第一个元素值 B) 数组中全部元素值 C) 数组的首地址 D) 数组的元素个数 二、读程序,写出程序执行结果 1. void main() { int a=5, b=8; printf(“a=%d b=%d\n", a,b) ; a=a+b; b=a—b; a=a—b; printf(“a=%d b=%d\n", a,b) ; } 运行结果:a=5 b=8 a=8,b=5 2。 #include 〈stdio.h〉 void main() { int k=4,n=0; for( ; n〈k ; ) { n++; if(n%3!=0) continue; k- —; } printf(”%d,%d\n”,k,n); } 运行结果:3,3 3.#include <stdio.h〉 void main() { int x=1,a=0,b=0; switch(x) { case 0:b++; case 1:a++; case 2:a++;b++; } printf(“a=%d,b=%d\n”,a,b); } 运行结果:a=2,b=1 4。#include 〈stdio。h> void main() { int a[3][3]={{1,2},{3,4},{5,6}},i,j,s=0; for(i=0;i<3;i++) for(j=0;j<=i;j++)s+=a[i][j]; printf(“%d\n”,s); } 运行结果:19 5.#include <stdio.h〉 void main() { int i,j; for(i=0; i<3;i++) { for(j=0; j<=i;j++) printf(”*"); printf("\n”); } } 运行结果: * ** *** 6.#include 〈stdio.h〉 void main() { int i; for (i=0; i<3; i++) switch (i) { case 1: printf("%d ", i); case 2: printf(”%d ”, i); default : printf("%d ", i); } } 运行结果:011122 7.#include 〈stdio。h> void main() { int i,n[]={1,2,3,4,5}; for(i=0;i<2;i++) { n[i]=n[4—i]+1; printf(”%d ",n[i]); } for(i=0;i〈5;i++) printf("%d ",n[i]); } 运行结果:6565345 8.#include <stdio。h> char fun(char *s) { if( *s >= ¢a¢ && *s 〈= ¢z¢ ) *s=*s-32; return *s; } void main() { char a[20]=”Welcome”,*p,ch; for(p=a;*p!=¢\0¢;p++) { ch=fun(p); putchar(ch); } } 运行结果:WELCOME 9.main() { int a[4][4]={{1,2,—3,-4},{0,—12,—13,14},{—21,23,0,-24},{-31,32,—33,0}}; int i, j, s=0; for (i=0; i<4; i++) { for (j=0; j〈4; j++) { if (a[i][j] < 0) continue; if (a[i][j] == 0) break; s += a[i][j]; } } printf("%d\n”, s); } 运行结果:58 10.main() { int k=4,n=0; for( ; n<k ; ) { n++; if(n%3!=0) continue; k—-; } printf("%d,%d\n",k,n); } 运行结果:3,3 三、编程题 1. 设有分段函数: —1 (x<0) Y= 0 (x=0) 1 (x〉0) 编一程序,输入一个 x值,输出 y 的值。 具体程序详见教材100页. 2.求下列分段函数的值。[已验证] #include 〈stdio。h〉 void main() { int x; float y; printf(“输入x:"); scanf(“%d\n",&x); if(x<—1) {y=x*x; printf(“x=%3d,y=%f\n”,x,y); } else if(x==—1) {y=0; printf(“x=%3d,y=%f\n”,x,y); } else {y=1。0/(1+x);/*注意:此处如果写成y=1/(1+x);则当x=1时,输出是0.000000*/ printf(“x=%d,y=%f\n”,x,y); } } 3.编程任意输入两个实数a和b,计算下面函数的值,并输出y值. a—b a>b y= a〈b a=b a*b 具体程序请参照上述两题。 4.编写程序,用公式求的近似值,直到某一项的绝对值小于10—6为止。 具体程序详见教材124页。 5.任意输入100个整数,分别统计其中的正数、负数和零的个数。 #include <stdio。h〉 main() { int j=0,k=0,l=0;//j,k,l分别为正整数,0,负整数的个数。 int *p; int a[100];//容纳这100个整数的数组 for(p=a;p<(a+100);p++) { scanf(“%d”,p); } for(p=a;p<(a+100);p++) { if(*p〉0) j++; else if(*p==0) k++; else l++; } printf(“正数的个数为%d\n0的个数为%d\n负数的个数为%d\n”,j,k,l); } 6.计算:s=1+1/1+1/2+……+1/n,其中n由键盘输入。[已验证] 错误的程序: #include 〈stdio。h〉 main() {int n; float s; scanf(“%f",&n); for(n=1,s=1.0;n〈=100;n++) s=s+1.0/n; printf(“%f\n”,s); }请同学们自己体会错误程序的原因。 正确的程序: #include 〈stdio.h〉 main() {int n; float s,k; scanf(“%d”,&n); s=1.0; for(k=1;k<=n;k++) s=s+1.0/k; printf(“%f\n”,s); } 7.任意输入a[N][N]个数,找出并输出其中的最大数和最小数,以及它们的下标。 (本题涉及到二维动态数组的输入) #include 〈stdio。h> main() {int N,i,j,row=0,colum=0,max,min; int a[N][N]; max=a[0][0]; min=a[0][0]; for(i=0;i〈N;i++) for(j=0;j〈N;j++) scanf(“%d",&a[i][j]); for(i=0;i<N;i++) for(j=0;j<N;j++) if(a[i][j]>max) { max=a[i][j]; row=i; colum=j; } printf(“max=%d,row=%d,colum=%d\n",max,row,colum); for(i=0;i〈N;i++)- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- word 完整版 语言程序设计 综合 习题集
咨信网温馨提示:
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【二***】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【二***】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【二***】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【二***】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
关于本文