C语言复习题整理
《C语言》总复习题

《C语言》课程综合复习资料一、单项选择1. 若有如下语句: int *p1,*p2; 则其中int所指的是(D )A. p1的类型B. *p1和*p2的类型C. p2的类型D. p1和p2所能指向变量的类型2. 下列程序段的输出结果是(C )x=9; while(x>7) {printf(“*”);x--;}A. ****B. ***C. **D. *3. 下列变量的定义及赋值正确的是(C)A. int i=0;j;B. char c=”A”;C. double x,y,z; x=y=z=100;D. float a=b=100;4. 设有语句:int x=10;x = x -= x - x;,则执行语句后,x的值为(B )A. 30B. 20C. 10D. 405. 设有语句:float x=1,y; y=x 3/2; 则y的值是(C )A. 1B. 2C. 2.0D. 2.56. 设有如下定义和执行语句,其输出结果为(A )int a=3,b=3; a = --b + 1; printf(“%d %d”,a,b);A. 3 2B. 4 2C. 2 2D. 2 37. 设有两字符串“Beijing”、“China”分别存放在字符数组str1[10],str2[10]中,下面语句中能把“China”连接到“Beijing”之后的为(C )A. strcpy(str1,str2);B. strcpy(str1, “China”);C. strcat(str1,“China”)D. strcat(“Beijing”,str2);8. 设有定义语句:char str[][20]={""Hello"",""Beijing""},*p=str; 则printf(""%d\n"",strlen(p+20)); 输出结果是(C )A. 0B. 5C. 7D. 209. 设有定义int a[ ]={1,5,7,9,11,13},*p=a 3;则*(p-2),*(a 4)的值是(A )C. 5 9D. 有错误10. 设有定义:int x=0,y=1,z=1;则运行表达式:x=y >z--后,x,y,z的值分别是(D )A. 1,1,1B. 1,2,0C. 0,1,1D. 0,2,011. 设有定义:int x=12,n=5; 则表达式x%=(n%2) 的值为(A )A. 0B. 1C. 2D. 312. 设有定义int a=3,b=4,c=5; ,则以下表达式中,值为0的表达式是(D )A. a&&bB. a<=bC. a||b c&&b-cD. !((a<b)&&!c||1)13. 设有定义int a[ ]={1,5,7,9,11,13}, *p=a 3; 则*(p-2) , *(a 4) 的值是(A )A. 5 11B. 1 9C. 5 9D. 有错误14. 设有定义char *p=“abcde\0fghjik\0”; 则printf(“%d\n”,strlen(p));输出结果是(D )A. 12B. 15C. 6D. 515. 设有int x=11;则表达式(x *1/3)的值是(A )A. 3B. 4C. 11D. 1216. 设a=3,b=4,c=-5,则逻辑表达式:a || b c && b==c 的值是(A )A. 1B. 0C. 非0D. 语法错17. 若有以下定义:int a[10],*p=a; 则*(p+3)表示的是(B )A. 元素a[3]的地址B. 元素a[3]的值C. 元素a[4]的地址D. 元素a[4]的值18. 若有以下定义:char s[20]= "programming",*ps=s;则不能代表字符g的表达式是(A )A. ps 3D. ps =3,*ps19. C语言中,函数返回值的类型是由(D )A. return语句中的表达式类型决定B. 调用函数的主调函数类型决定C. 调用函数时的临时类型决定D. 定义函数时所指定的函数类型决定20. C语言提供的合法关键字是(D )A. swicthB. chaC. CaseD. default二、读程序题1. "#include <stdio.h>void main(){ int a=4,x=3,y=2,z=1;printf(""%d\n"",(a<x ? a : z<y ? z : x)); }"2. "#include <stdio.h>void main(){ int x=12,y=0;if(x>=0){ if(x>0) y=10; }else y=-10;printf(“y=%d\n”,y);}"3. "#include <stdio.h>void main(){ int k=1;switch(k){ case 0: printf(""A""); break;case 1: printf(""B"");case 2: printf(""I"");case 3: printf(""G""); break;default: printf(""E"");}}"4. "#include <stdio.h>#define S(x) x*xvoid main(){int a,k=3,m=1;a=S(k+m);printf(""%d"",a);}"5. "#include <stdio.h>int fun(int a, int b){ if(a>b) return(a);else return(b);}void main(){ int x=3, y=8, z=6, r;r=fun(fun(x,y), 2*z);printf(""%d\n"", r);}"6.#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);}三、编程题1. 写一个判断素数的函数。
C语言期末复习.doc

C语言期末复习.doc第一章C语言概述一、选择题1、C语言程序由什么组成()A、子程序B、主程序和子程序C、函数D、过程2、源程序要正确地运行,必须要有什么函数()A、Printf函数B、自定义的函数C、main函数D、不需要函数3、指出下面哪些是合法的标识符()A、3abB、intC、ABCD、a_3E、sum..aF、#abcG、_stu2H、abc f二、问答题1、C语言程序由哪几部分组成?C语言程序结构有什么特点?参考答案一、选择题1、C2、C二、问答题见教案第二章基本数据类型、运算符及表达式一、选择题1、C语言中的数据的基本类型包括()A、整型、实型、字符型和逻辑型B、整型、实型、字符型和结构体C、整型、实型、字符型和枚举型D、整型、实型、字符型和指针型2、在C语言中,不合法的int型常量是()A、32767B、0678C、0XABCD、32768L3、在C语言中,运算对象必须是整型数的运算符是()A、%B、\\C、%和\\D、**4、若已定义X和Y为double型,则表达式:x=1,y=x+3/2的值是()A、1B、2C、2.0D、2.55、若t为double类型,表达式t=1,t+5,t++的值就是()A、1B、6.0D、1.06、若有定义:int a=10,b=9,c=8;执行下面两条语句c=(a-=(b-5));c=(a%11)+(b=3);后,变量b的值为()A、9B、4C、3D、27、设int a=12,则执行完语句a+=a-=a*a后,a的值是_____A、22B、264C、144D、-264二、问答题:1、简述‘a’和“a”的区别。
参考答案一、选择题1、C2、D3、A4、D5、D6、C7、D二、问答题‘a’是字符常量“a”是字符串常量C语言规定:在每一个字符串的结尾加一个“字符串结束标志”,以便系统据此判断字符串是否结束。
C语言规定以字符’\\0’作为字符串结束标志。
如果有一个字符串”china”,实际上在内存中是占内存不是5个字节,而是6个字节,最后一个是’\\0’。
c语言期末复习试题附答案

c语言期末复习试题附答案一、选择题(每题2分,共20分)1. C语言中,下面哪个选项不是合法的数据类型?A. intB. floatC. doubleD. character答案:D2. 在C语言中,下面哪个选项是合法的变量名?A. 2abcB. abc12C. abc_12D. abc&12答案:B3. 下面哪个选项不是C语言的运算符?A. +C.D. %答案:D4. 在C语言中,下面哪个选项表示取模运算?A. %B. /C.D. ^答案:A5. 下面哪个选项是C语言中的关系运算符?A. ==B. !=C. >D. <答案:A、B、C、D6. 下面哪个选项是C语言中的逻辑运算符?B. ||C. !D. &答案:A、B、C7. 下面哪个选项是C语言中的赋值运算符?A. =B. +=C. -=D. =答案:A、B、C、D8. 下面哪个选项不是C语言中的控制语句?A. ifB. whileC. do-whileD. for答案:D9. 在C语言中,下面哪个选项表示循环不变量?A. 初始化表达式B. 循环条件C. 循环体D. 步进表达式答案:D10. 下面哪个选项是C语言中的递归调用?A. function(function());B. function();function();C. function(function());function();D. function();function(function());答案:A二、填空题(每题2分,共20分)1. C语言中,一个整型数据占____个字节。
答案:42. C语言中,一个浮点型数据占____个字节。
答案:43. 在C语言中,一元运算符“++”和“--”的优先级高于二元运算符“+”、“-”、“”、“/”、“%”。
答案:正确4. 在C语言中,关系运算符“==”和“!=”的优先级高于“<”、“>”、“<=”、“>=”。
C语言复习题(含答案)

a=10;b=50;c=30;
if (a>b) c=%d”,a,b,c);
A、a=10,b=50,c=10B、a=10,b=30,c=10
C、a=50,b=30,c=10 D、a=50,b=30,c=50
14、在C语言中,当while语句构成的循环的条件为D时,结束循环。
A、5 B、3
C、101 D、11
22、当说明一个结构体变量时系统分配给它的内存是A。
A、各成员所需内存量的总和
B、结构中第1个成员所需内存量
C、成员中占内存量最大者所需的容量
D、结构中最后一个成员所需内存量
23、使用共用体union的目的是A。
A、将一组数据作为一个整体,以便与其中的成员共享同一存空间
A、ASCII代码值B、BCD代码值
C、内码值D、十进制代码值
12、以下程序段C。
int x=2,y=3;
printf( x>y? ”****=%d”: “###y=%d”,x,y);
A、输出控制格式错误B、输出为:****x=2
C、输出为:###y=2D、输出为:###y=3
13、以下程序的输出为B。
for (I=0; I<4; I++) a[I]=*p++;
printf(“%d\n”,a[2]);}
上面程序的输出结果是B。
A、6 B、8 C、4 D、2
19、在C语言中,如果对函数类型未加显示说明,则函数的隐含类型是A。
A、intB、charC、voidD、double
20、在C语言中,当函数调用时A。
{int I,s,n;
s=1;
printf(“enter n: “);
C语言复习资料(有参考答案)

一、选择题:1.‖a‖在内存中占 B 字节。
A.1个B.2个C.3个D.4个2.‘A‘+10的结果是 A 。
A.‘K‘B.‖K‖C.‘J‘D.‖J‖3.字符型数据在微机内存中的存储形式是:DA.反码 B.补码 C.EBCDIC码 D.ASCII码4. 用C语言编制的源程序要变为目标程序,必须经过:DA. 汇编B.解释C. 编辑D.编译5.以下选项中不合法的用户标识符是AA.abc.cB.fileC.MainD.PRINTF6.以下选项中正确的实型常量是 DA.0B.3. 1415C.0.329 102D. .8717. 执行scanf (―%d%c%f‖,&a,&b,&c) 语句,若输入1234a12f56 则变量a,b,c的值为 C .A. a=1234 b=‘a‘c=12.56B. a=1 b=‘2‘c=341256C. a=1234 b=‘a‘c=12.0D. a=1234 b=‘a12‘c=56.08. 设b=1234 , 执行printf(―%%d@%d‖,b) 语句,输出结果为: D .A. 1234B. %1234C. %%d@1234D. %d@ 12349. 两次运行下面的程序,如果从键盘上分别输入6和4,输出的结果是 A 。
main(){ int x;scanf(―%d‖,&x);if(x++>5)printf(―%d‖,x);elseprinf(―%d\n‖,x--);}A. 7和5B. 6和5C. 7和4D. 6和410. 设a为整型变量,不能正确表达数学关系: 10<a<15的C语言表达式是 A 。
A. 10<a<15B. a==11||a==12||a==13||a==14C. a>10&&a<15D. !(a<=10)&&!(a>=15)11. 假设所有变量均为整型,表达式(a=2,b=5,a>b? a++:b++,a+b)的值是: B 。
(完整版)C语言各章节复习题(带答案)

一、C语言概述练习题选择1.一个C程序的执行是从。
A) 本程序的main函数开始,到main函数结束B) 本程序文件的第一个函数开始,到本程序文件的最后一个函数结束C) 本程序文件的第一个函数开始,到本程序main函数结束D) 本程序的main函数开始,到本程序文件的最后一个函数结束2.以下叙述不正确的是。
A) 一个C源程序必须包含一个main函数 B)一个C源程序可由一个或多个函数组成C) C程序的基本组成单位是函数 D) 在C程序中,注释说明只能位于一条语句的后面3.以下叙述正确的是。
A) 在对一个C程序进行编译的过程中,可发现注释中的拼写错误B) 在C程序中,main函数必须位于程序的最前面C) C语言本身没有输入输出语句 D) C程序的每行中只能写一条语句4.一个C语言程序是由。
A)一个主程序和若干个子程序组成 B) 函数组成 C) 若干过程组成 D) 若干子程序组成5.计算机高级语言程序的运行方法有编译执行和解释执行两种,以下叙述中正确的是。
A) C语言程序仅可以编译执行B) C语言程序仅可以解释执行C) C语言程序既可以编译执行又可以解释执行D) 以上说法都不对6.以下叙述中错误的是。
A) C语言的可执行程序是由一系列机器指令构成的B)用C语言编写的源程序不能直接在计算机上运行C)通过编译得到的二进制目标程序需要连接才可以运行D)在没有安装C语言集成开发环境的机器上不能运行C源程序生成的.exe 文件7.以下叙述正确的是。
A) C语言程序是由过程和函数组成的B) C语言函数可以嵌套调用,例如:fun(fun(x))C) C语言函数不可以单独编译 D) C语言中除了main函数,其他函数不可作为单独文件形式存在二、数据类型、运算符与表达式选择.1.若x、i、j、k都是int型变量,则计算下面表达式后,x的值为x=(i=4,j=16,k=32) A) 4 B) 16 C) 32D) 522.下列四组选项中,均不是C语言关键字的选项是。
C语言复习题及参考答案

C语言复习题及参考答案一、单项选择1、以下叙述正确的是:__B__。
A)C语言的源程序不必通过编译就可以直接运行。
B)C语言中的每条可执行语句最终都将被转换成二进制的机器指令。
C)C语言源程序经编译形成的二进制代码可以直接运行。
D)C语言中的函数不可以单独进行编译。
2、以下4个用户定义标识符中,全部合法的一组是__A__。
A)_main enclude sin B)if –max turbo C)txt REAL 3COM D)int k_2 _001 3、以下不能定义为用户标识符的是_D__。
A)scanf B)Void C)_3com D)int4、C语言中用于结构化程序设计的3种基本结构是__A__。
A)顺序结构、选择结构、循环结构B)if、switch、breakC)for、while、do-whileD)if、for、continue5、为解决某一特定问题而设计的指令序列称为__C__。
A)文档B)语言C)程序D)系统6、用高级程序设计语言编写的程序称为__C__。
A)目标程序B)可执行程序C)源程序D)伪代码7、能将高级语言编写的源程序转换成目标程序的是__B__。
A)编辑程序B)编译程序C)驱动程序D)链接程序8、下列叙述中,正确一条是__C__。
A)计算机语言中,只有机器语言属于低级语言。
B)高级语言源程序可以被计算机直接执行。
C)C语言属于高级语言。
D)机器语言是所用机器无关的。
9、以下符合C语言语法的实型常量是__C__。
A)1.2E0.5B)3.14159E C).5E-3D)E1510、下面叙述正确的是__A___。
A)C程序中注释部分可以出现在程序中任何合适的地方。
B)花括号“{”和“}”只能作为函数体的定界符。
C)构成C程序的基本单位是函数,所有函数名都可以由用户命名。
D)分号是C语句之间的分隔符,不是语句的一部分。
11、设有以下定义:int a=0; double b=1.25; char c=’A’;#define d 2则下面语句中,错误是__D__。
C语言考试复习题

11.如下定义“char c1=’a’, c2=’b’, c3=c1-c2;”后执行printf(“%d”,c3);结果为无任何显示。( )
12.可以有如下定义:“int a=b=c=0;”。( )
13.执行“int x=4, y=5; float z=x/y;”后,z的值为0.8。( )
A.0 B. C. 2 D. -1
20. 下列程序执行后的输出结果是( )。
A. G B. H C. I D. J
main ( )
{ int x=’f’;printf(“%c\n”,’A’+(x-‘a’+1));}
21. 下列程序执行后的输出结果是( )。
printf(“%d\n”,d*y); }
18. 下列变量定义中合法的是( )。
A.short _a=.1e-1; B. double b=1+5e2.5;
C. long do=0xfdaL; D. float 2_and=1-e-3;
19. 设“int x=1,y=1;“,表达式(!x||y--)值是( )。
3. 字符型常量在内存中存放的是( )。
A.ASCII码 B. BCD码 C. 内部码 D. 十进制码
4. 若变量a,i已正确定义,且i已正确赋值,合法的语句是( )。
A. a==1 B. ++i; C. a=a++=5; D. a=int(i);
A.复数型 B. 逻辑型 C. 双精度型 D. 集合型
15.在C语言中,不正确的int类型的常数是( )。
A.32768 B. 0 C. o37 D. oxAF
16. 当c的值为0时,在下列选项中能正确将c的值赋给变量a,b的是( )。
c语言复习试题及答案

c语言复习试题及答案1. 什么是C语言?C语言是一种通用的、过程式的编程语言,广泛用于系统软件与应用软件的开发。
2. C语言中的关键字有哪些?C语言的关键字包括:int, char, float, double, void, struct, union, enum, return, break, continue, if, else, switch, case, default, while, do, for, goto, sizeof, typedef。
3. 请写出C语言中声明一个整型变量的语句。
int variable_name;4. 如何在C语言中定义一个函数?在C语言中,定义一个函数需要指定返回类型、函数名和参数列表。
例如:int add(int a, int b) {return a + b;}5. 请解释C语言中的数组。
数组是相同数据类型元素的集合,存储在连续的内存位置。
声明数组的语法如下:数据类型数组名[数组大小];6. C语言中如何实现字符串的输入和输出?使用`scanf`函数输入字符串,使用`printf`函数输出字符串。
7. C语言中如何进行文件操作?使用`fopen`函数打开文件,`fprintf`函数写入文件,`fscanf`函数读取文件,`fclose`函数关闭文件。
8. 请写出一个C语言程序,实现计算两个整数的和。
#include <stdio.h>int main() {int a, b, sum;printf("Enter two numbers: ");scanf("%d %d", &a, &b);sum = a + b;printf("Sum of the numbers is: %d", sum);return 0;}9. 什么是指针?指针是一个变量,其值为另一个变量的地址。
c语言复习资料

c语言复习资料一、单项选择题1、C 语言规定在一个源程序中,main函数的位置是()A.必须在最开始B. 必须在系统调用的库函数的后面C.可以任意D. 必须在最后2、下列选项中不属于结构化程序设计原则的是()A.可封装B.自顶向下C.模块化D.逐步求精3、若已定义x 和y为double 类型,则表达式x=1,y=x+3/2 的值是()A. 1B. 2C. 2.0D. 2.54、设a=1,b=2,c=3,d=4,则表达式:a<="" p="">A. 4B. 3C. 2D. 15、设有语句 int a=3;,则执行了语句 a+=a-=a*=a;后,变量a 的值是()A. 3B. 0C. 9D. -126、定义变量如下:int x;float y;则以下哪一个输入语句正确的是()A.scanf(“%f%f”,&x,&y);B.scanf(“%f%d”,&x,&y);C.scanf(“%f%d”,&y,&x);D.scanf(“%5.2f%2d”,&x,&y);7、以下是if语句的基本形式:if(表达式)语句其中的“表达式”正确描述为: ()A.必须是逻辑表达式 B.必须是关系表达式C.必须是逻辑表达式或关系表达式D.可以是任意合法的表达式8、读程序片段,正确的选项是()int x,y;scanf(“%d,%d”,&x,&y);if(x>y) x=y;y=x;else x++;y++;printf(“%d,%d”,x,y);A.有语法错误,不能通过编译B.若输入3和4,则输出4和5C.若输入4和3,则输出3和4D.若输入4和3,则输出4和59、若switch (i){ case 9: i+=1;case 10: i+=1;case 11: i+=1;default: i+=1;}执行下列程序片段后,变量i的正确结果是()switch (i){ case 9: i+=1;case 10: i+=1;case 11: i+=1;default: i+=1;}A.10B.11C.12D.1310、对数组s进行初始化,其中不正确的是()A.char s[5]={"abc"};B.char s[5]={‘a’,‘b’,‘c’};C.char s[5]="";D.char s[5]="abcdefg";11、以下描述中正确的是()A.函数定义可以嵌套,函数调用也可以嵌套。
C语言常见复习题(选择填空)及参考答案

C语言常见复习题及参考答案一、选择题1.下述标识符中,()是合法的用户标识符。
A.A#CB.getchC.voidD.ab*2.在C语言中,字符型数据在内存中是以()形式存放的。
A.原码B.BCD码C.反码D.ASCII码3.以下选项中不合法的用户标识符是()。
A.abc.cB.fileC.MainD.PRONTF4.以下选项中不合法的用户标识符是()。
A.123B.printfC.Anbsp;D.Dim5.可以在C语言程序中用做用户标识符的一组标识符是()。
A.voidB.as-b3C.forD.2cdefine -123 -abc DoWORD If cas SIG6.在以下各组标识符中,合法的用户标识符是(1)、(2)、(3)。
(1)A.001 B.table_1 C.0_t D.k%Int t*.1 W10 point(2)A.Fast_ B.void C.pbl D.Fast+Big abs fabs beep(3)A.xy_ B.longdouble C.*p D.CHAR变量1 signed history Float7.()是构成C语言的基本单位。
A.函数B.过程C.子程序D.子例程8.若有说明:char s1='\067';char s2="1";char s3='1';则s1中(1),s2中(2),s3中(3)。
(1).A.包含3个字符 B.包含2个字符C.包含1个字符D.无定值,说明不合法(2).A.包含1个字符 B.包含2个字符C.包含3个字符D.无定值,说明不合法(3).A.包含1个字符 B.包含2个字符C.包含3个字符D.无定值,说明不合法9.若x为int型变量,则执行以下语句后,x的值为x=6;x+=x-=x*xA.36B.-60C.60D.-2410.在C语言中,char 型数据在内存中是以()形式存储的。
A.原码B.补码C.ASCII码D.反码11.以下运算符中优先级最低的算符为(),优先级最高的为()。
c语言基础习题、复习题(含答案)

c语言基础习题、复习题(含答案)《C语言设计》复习题一选择题1、以下说法中正确的是(C )。
C语言程序总是从main()函数开始执行2、若已定义x和y为double类型,则表达式:x=1,y=x+3/2的值是___C___.C. 2.03、以下叙述正确的是(D )。
D. 用do…while语句构成循环时,在while后的表达式为零时结束循环4、C程序是( B)B. 从Main函数开始5、设x、y、z和k都是int型变量,则执行表达式:x=(y=4,z=16,k=32)后,x的值为__C____。
C. 326、设int b=2;表达式b/(b*2)的值是___A_____.A. 07、表示关系X<=Y<=Z的C语言表达式为__A___.A. (X < =Y)&&(Y < =Z)8、已知int x=10,y=20,z=30;以下语句执行后x,y,z的值是BB. x=20,y=30,z=309、设A=3,B=4,执行printf("%d,%d",(A,B),(B,A));的输出是___B___.B. 4,310、下面判断正确的是CC. char *s="china";等价于char *s;s="china";11、若有说明:int a[10];,则对a数组元素的正确引用是(D )。
D. a[10-10]12、在C语言中,int、char和short三种类型数据在内存中所占用的字节数DD. 由所用机器的机器字长决定13、C语言规定,函数返回值的类型是由DD. 在定义该函数时所指定的函数类型所决定14、与y=(x > 0?1:x < 0?-1:0);的功能相同的if语句是AA. if(x > 0) y=1; else if(x < 0) y=-1; else y=015、执行语句:for(i=1;i++ < 4;)后;变量i的值是(C )C. 516、语句while(!E);中的表达式!E等价于_____A__A. E==017、假定a和b为int型变量,则执行以下语句后b的值为DD. -418、对以下说明语句的正确理解是____B____int a[10]={6,7,8,9,10};B. 将5个初值依次赋给a[0]至a[4]19、以下不能对二维数组a进行正确初始化的语句是CC. int a[2][3]={{1,2},{3,4},{5,6}}; 20、在C语言中,一维数组的定义方式为:类型说明符数组名___D______D. [整型常量]21、下列说法中正确的是_D___。
C语言复习题带答案

一、选择题1、以下叙述中正确的是( A )A、构成C程序的基本单位是函数B、可以在一个函数中定义另一个函数C、main( )函数必须放在其它函数之前D、所有被调用的函数一定要在调用之前进行定义2、以下选项中合法的实型常数是( D )3、以下选项中合法的用户标识符是( B )4、已知大写字母A的ASCII码是65,小写字母a的ASCII码是97,则用八进制表示的字符常量’101’是(A )A、字符AB、字符aC、字符eD、非法的常量5、以下非法的赋值语句是( C )A、n=(i=2,++i);B、j++;C、++(i+1);D、x=j>0;6、设a和b均为double型常量,且a=5.5、b=2.5,则表达式(int)a+b/b的值是( D )7、已知i、j、k为int型变量,若从键盘输入:1,2,3<回车>,使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) ;8、与数学式子3乘以x的n次方/(2x-1)对应的C语言表达式是(C )A、3*x^n/ (2*x-1)B、3*x**n/ (2*x-1)C、3*pow(x,n)*(1/ (2*x-1))D、3*pow(n,x)/ (2*x-1)9、设有定义:long x=-123456L;,则以下能够正确输出变量x值的语句是(B )A、printf (“x=%d “,x);B、printf (“x=%ld “,x);C、printf (“x=%8dL “,x);D、printf (“x=%LD “,x);10、若有以下程序:main( ){int k=2,i=2,m;m=(k+=i*=k); printf (”%d,%d ”,m,i);}执行后的输出结果是( C )A、8,6B、8,3C、6,4D、7,411、已有定义:int x=3,y=4,z=5;,则表达式!(x+y)+z-1&&y+z/2 的值是( D )A、6B、0C、2D、112、有一函数y=以下程序段中不能根据x的值正确计算出y的值的是( C )A、 if(x>0) y=1;else if (x==0) y=0; else y=-1;B、 y=0; if(x>0) y=1; else if(x<0) y=-1;C、 y=0; if(x>=0) if(x>0) y=1;else y= -1;D、 if(x>=0) if(x>0) y=1;else y= 0;else y=-1;13、以下选项中,与k=n++完全等价的表达式是(A )A、k=n, n=n+1B、n=n+1,k=nC、k= ++ nD、k+=n+114、以下程序的功能是:按顺序读入10名学生4门课程的成绩,计算出每位学生的平均分并输出,程序如下:main(){int n,k;float score,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(“NO%d:%f “,n,ave);}}上述程序运行后结果不正确,调试中发现有一条语句出现在程序的位置不正确,这条语句是( A )A、sum=0.0;B、sum+=score;C、ave=sum/4.0;D、printf(“NO%d:%f “,n,ave);15、有以下程序段int n=0,p;do {scanf(“%d”,&p);n++} while(p!=12345&&n<3);此处do-while循环的结束条件是(D )A、 p的值不等于12345并且n的值小于3B、 p的值等于12345并且n的值大于等于3C、 p的值不等于12345或者n的值小于3D、 p的值等于12345或者n的值大于等于316、有以下程序( A)main(){int a=15,b=21,m=0;switch(a%3){case 0;m++;break;case 1;m++;switch(b%2){default:m++;case 0;m++;break;}}printf(“%d”,m);}A、1B、2C、3D、417、C语言中,函数值类型的定义可以缺省,此时函数值的隐含类型是( B )A、voidB、intC、floatD、double18、有以下程序int f(int n){if (n==1) return 1;else return f(n-1)+1;}main(){int i,j=0;for (i=1;i<3;i++) j+=f(i);printf(’%d ”,j);}程序运行后的输出结果是( B )A、4B、3C、2D、119、C语言规定,在一个源程序中,main( )函数的位置(C )A、必须在最开始B、必须在系统调用的库函数的后面C、可以任意D、必须在最后20、下列数据中,不合法的C语言实型数据是(C )21、下面4个选项中,均是不合法的用户标识符的选项是(C )A、AP_0doB、floata0_AC、b-agotointD、_123tempint22、设变量a是int型,f是float型,i是double型,则表达式10+’a’+i*f值的数据类型为( C )A、intB、floatC、doubleD、不确定23、能正确表示逻辑关系:”a>10或a<0”的C语言表达式是(D )A、a>=10 or a<=0B、a>=10 | a<=0C、D、a>=10 || a<=024、设以下变量均为int类型,表达式的值不为7的是(C )A、(x=y=6,x+y,x+1)B、(x=y=6,x+y,y+1)C、(x=6,x+1,y=6,x+y)D、(y=6,y+1,x=y,x+1)25、若变量a是int类型,并执行了语句:a=’A’+1.6;,则正确的叙述是(D )A、a的值是字符CB、a的值是浮点型C、不允许字符型和浮点型相加D、a的值是字符’A’的ASCII值加上126、有如下程序main( ){int x=23;do{printf(“%d”x--);} while(!x);}该程序的执行结果是(B )A、321B、23C、不输出任何内容D、陷入死循环27、若变量c为char类型,能正确判断出c为小写字母的表达式是( D )A、’a’<=c<=’z’B、(c>=’a’) || (c<=’z’)C、(’a’<=c) and (’z’>=c)D、(c>=’a’) && (c<=’z’)28、以下不正确的定义语句是( B )A、double x[5]={2.0,4.0,6.0,8.0,10.0};B、int y[5.3]={0,1,3,5,7,9};C、char c1[ ]={‘1’,’2’,’3’,’4’,’5’};D、char c2[ ]={‘\x10’,’\xa’,’\x8’};29、有以下程序fun(int x,int y,int z){z=x*y;}main( ){int a=4,b=2,c=6;fun(a,b,c);printf(“%d”,c);}程序运行后的输出结果是( B )A、16B、6C、8D、1230、下列函数的运行结果是(A )main( ){int i=2,p;int j,k;j=i;k=++i;p=f (j,k);printf(”%d”,p);}int f (int a,int b){int c;if (a>b) c=1;else if (a==b) c=0;else c=-1;return c;}A、-1B、1C、2D、编译出错,无法运行31、下面可以作为C语言程序中标识符的是(A )A、_total3B、num(10)C、2DateD、long32、已知字符‘A’的ASCII值为65,则‘\103’表示的字符是( C )A、字符AB、字符BC、字符CD、非法常量33、每个C语言程序都必须有一个(B )函数,C程序总是从该函数开始执行。
C语言复习题及答案

复习A:一、单项选择题1、如果要把常量327存入变量a中,a不能定义的类型是哪一个?()A)int B)char C)long D)float2、若x 为unsigned int 型变量,则执行下列语句后x值为()x = 65535;printf(“%d\n”,x);A)65535 B)1 C)无定值D)-13、有以下程序main(){int a=1,b=2,m=0,n=0,k;k=(n=b>a)||(m=a<b);printf(″%d,%d\n″,k,m);}程序运行后的输出结果是()A)0,0 B) 0,1 C)1,0 D)1,14、在C语言中,如果下面的变量都是int类型,则输出的结果是()。
sum=pad=5; pAd=sum + + ,pAd + +, + + pAd;printf("%d\n",pad);A) 7 B) 6 C) 5 D) 45、以下程序的输出结果是()。
main(){ int a=4,b=5,c=0,d;d=!a&&!b||!c;printf("%d\n",d);}A)1 B)0 C)非0的数D)-16、当执行以下程序段时()。
x=-1;do{x=x*x;}while(!x);A)循环体将执行一次B)循环体将执行两次C)循环体将执行无限次D)系统将提示有语法错误7、全局变量的存储类型可以定义为()。
A)auto或static B)extern或registerC)auto或extern D)extern或static8、定义全局变量时,若变量的的存储类别缺省,则默认的存储类型是()。
A)auto B)registerC)extern D)static9、已知:int a, x; 则正确的赋值语句是()。
A)a=(a[1]+a{2})/2; B)a*=*a+1;C)a=(x=1, x++, x+2); D)a="good";10、已知:int a, *p=&a; 则下列函数调用中错误的是()。
C语言考试复习题及答案

一、单选题(请将正确答案写在答题纸,1~20题每题1分,21~35题每题2分,共50分)1. 下列关于C语言的说法不正确的是( D )。
A.C语言既具有高级语言的一切功能,也具有低级语言的一些功能B.注释可以出现在程序中任意合适的地方C.C语言中的每一条执行语句都必须用分号结束,分号是C语言的一部分D.定义函数的首行要加分号2. C语言程序的执行顺序是(B)。
A.从第一个函数开始执行B.从main函数开始执行C.从任意函数开始执行D.从第一条语句开始执行3. 以下关于注释的叙述,正确的是(D)。
A.注释参与编译,影响程序结果B.注释不参与编译,但影响程序结果C.注释参与编译,但不影响程序结果D.注释不参与编译,不影响程序结果4. 以下叙述正确的是(A)。
A.C语言程序可以在任意C编译器下编译B.C语言程序只能在TC环境下编译C.C语言程序只能在VC或TC环境下编译D.C语言程序只能在VC环境下编译5. C语言中的标识符只能由字母,数字和下划线三种字符组成,且第一个字符( B )。
A.必须为字母B.必须为下划线或字母C.必须为下划线D.可以是字母,数字和下划线中任一字符6. 下面四个数字常量选项中,书写均正确的是(D)。
A.016 0x8f 018 (零开头的是八进制,不能用8)B.0312 7ff -087(8进制没有符号)C.0xbc 0a7(8进制没有a)0xaD.070 0xf1 0x19(16进制以ox开头)7. 若有说明语句:char c=0x7f;则变量c(B)。
A.包含3个字符B.包含1个字符C.包含2个字符D.说明不合法,c的值不确定8. 设有int x=11;则表达式(++x*1/3)的值是( B )。
(11+1再除以3)A.3B.4C.11D.129. 阅读下面程序段,输出结果为( B )。
(z-a=25)#include "stdio.h"void main(){ char c;c=('z'-'a')/3+'A';putchar(c);}A.HB.JC.ID.K10. 若有定义和语句:int a=23,b=023; printf(“%x,%d \n”,a,b);输出结果是( D )。
(完整版)C语言考试题库及答案

(完整版)C语言考试题库及答案一、选择题1. 以下哪个选项是C语言的合法标识符?A. intB. 2abcC. voidD. a+b答案:C2. 在C语言中,下列哪个选项是正确的数据类型?A. floatB. integerC. doubleD. All of the above答案:D3. 若变量定义如下:int a = 5;,则执行语句printf("%d", a++); 后,a的值是多少?A. 4B. 5C. 6D. 无法确定答案:C4. 以下哪个函数用于动态分配内存?A. malloc()B. alloc()C. new()D. calloc()答案:A5. 在C语言中,哪个运算符用于取模(取余)?A. %B. /C. &D. |答案:A以下是判断题部分:6. C语言中的数组名可以作为指向该数组首元素的指针使用。
()答案:正确7. 在C语言中,结构体变量可以作为函数的参数传递。
()答案:正确8. 在C语言中,静态存储类别的变量在程序运行期间始终占据内存空间。
()答案:正确二、填空题9. 在C语言中,定义一个整型变量需要使用关键字______。
答案:int10. 若变量定义如下:int a = 10;,则执行语句printf("%d", a--); 后,a的值是______。
答案:911. 在C语言中,用于动态分配内存的函数是______。
答案:malloc12. 在C语言中,用于释放动态分配的内存的函数是______。
答案:free13. 在C语言中,用于清空标准输入缓冲区的函数是______。
答案:getchar()三、编程题14. 编写一个C语言程序,实现以下功能:输入一个整数,输出它的阶乘。
答案:```c#include <stdio.h>int main() {int n, i;long factorial = 1;printf("Enter an integer: ");scanf("%d", &n);if (n < 0) {printf("Factorial of a negative number doesn't exist.\n");} else {for (i = 1; i <= n; i++) {factorial = i;}printf("Factorial of %d is %ld\n", n, factorial);}return 0;}```15. 编写一个C语言程序,实现以下功能:输入一个字符串,判断它是否是回文(正读和反读都一样的字符串)。
c语言复习题(有答案)●

思考题不仅要会做这些题,更重要的是要掌握其相关知识点一、一般填空题1-1、调用fopen函数打开一文本文件,在“打开模式”这一项中,为输出(写)而打开需填入【1】. 1-2、调用fopen函数打开一文本文件,在“打开模式”这一项中,为追加而打开需填入【1】.1-3、fopen函数的原形在头文件【1】中.1-4、getchar函数的原形在头文件【1】中.1-5、sqrt函数的原形在头文件【1】中.1-6、如果函数不要求带回值,可用【1】来定义函数返回值为空.答案:w或w+;a或a+;stdio.h ; stdio.h ; math.h ;void .2-1、字符串“\1011234\\at”的长度(字符数)是【1】.2-2、字符串“abc\103\\bcd”的长度(字符数)是【1】.2-3、字符串“1\\t\x43\abx44”的长度(字符数)是【1】.2-4、“a“在内存中占【1】个字节.2-5、‘a’在内存中占【1】个字节.2-6、“\71“在内存中占【1】个字节.2-7、一维数组下标的最小值是【1】;数组char a[]=“china” ;在内存应占【1】个字节。
答案:8; 8; 9; 2;1;2 ;0;6.3-1、设x=(5>1)+2, x的植为【1】.3-2、表达式‘B’+15+‘\x41’+011+0x10的值是【1】.3-3、表达式‘b’+5+‘\x42’+011+0x10的值是【1】.答案:3;171;194;4-1、假设所有变量都为整型,表达式(a=2,b=5,a>b?a++:b++,a+b)的值是【1】.4-2、if(!a)中的表达式!a等价于【1】.4_3、已知a=1,b=2,c=3,执行if(a>b>c) b=a;else b=c;a=4;b=8;后,b的值是【1】.答案:8;a==0;8;5-1、若所用变量都已定义,下列程序段的执行结果是【1】.for(i=1;i<=5;i++);printf(“OK\n”);5-2、执行语句char s[3]=”ab”,*p;p=s;后,*(p+2)的值是【1】.5-3、若有以下定义和语句:int a[4]={0,1,2,3},*p; p=&a[2]; ,则*--p的值是【1】.5-4、下列程序的输出结果是【1】,main(){int a=011;printf(“%d\n”,++a);}答案:OK;’\0’;1;106-1、若宏定义为:#define y(x) 2+x, 则表达式a=3*y(3)的值为【1】.6-2、若宏定义为:#define y(x) 2+x, 则表达式a=4*y(2)的值为【1】.6-3、若宏定义为:#define y(x) 2/x, 则表达式a=4+3*y(3)的值为【1】.答案:9;10;6 .二、单项选择题1-1、若以"a+"方式打开一个已存在的文件,则以下叙述正确的是()。
C语言考试题库及答案

C语言考试题库及答案一、选择题1. C语言中,以下哪个选项是合法的数据类型?A. intB. floatC. charD. All of the above答案:D2. 在C语言中,哪个关键字用于定义整型变量?A. floatB. doubleC. intD. char答案:C3. 下面哪个选项不是C语言的逻辑运算符?A. &&B. ||C. !D. ++答案:D4. 在C语言中,哪个函数用于动态分配内存?A. malloc()B. alloc()C. new()D. calloc()答案:A5. 在C语言中,哪个关键字用于定义结构体?A. structB. unionC. enumD. class答案:A二、填空题6. 在C语言中,用于声明函数原型的是______。
答案:函数原型7. 在C语言中,用于输入输出函数的是______。
答案:stdio.h8. 在C语言中,用于定义常量的是______。
答案:#define 或 const9. 在C语言中,用于定义指针的是______。
答案:(星号)10. 在C语言中,用于终止当前循环的是______。
答案:break三、判断题11. C语言中的数组下标是从1开始的。
()答案:错误12. 在C语言中,switch语句可以替代if-else语句。
()答案:正确13. 在C语言中,所有的变量在使用前必须声明。
()答案:正确14. C语言中的结构体是一种用户自定义的数据类型。
()答案:正确15. 在C语言中,函数的返回值类型不能是数组。
()答案:正确四、编程题16. 编写一个C程序,输出1到100之间所有的偶数。
```c#include <stdio.h>int main() {int i;for (i = 1; i <= 100; i++) {if (i % 2 == 0) {printf("%d\n", i);}}return 0;}```17. 编写一个C程序,计算并输出斐波那契数列的前10项。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第2部分C语言程序设计习题与解答题解1 绪论1.1 习题一、选择题1.一个完整的可运行的C源程序中( B )。
A.可以有一个或多个主函数B.必须有且仅有一个主函数C.可以没有主函数D.必须有主函数和其他函数2.构成C语言源程序的基本单位是( D )。
A.子程序B.过程C.文本D.函数3.某C程序由一个主函数main( )和一个自定义函数max( )组成,则该程序( D )。
A.总是从max( )函数开始执行B.写在前面的函数先开始执行C.写在后面的函数先开始执行D.总是从main( )函数开始执行4.C语言规定,一个C源程序的主函数名必须为( C )。
A.program B.includeC.main D.function5.下列说法正确的是( C )。
A.在书写C语言源程序时,每个语句以逗号结束B.注释时,'/'和'*'号间可以有空格C.无论注释内容的多少,在对程序编译时都被忽略D.C程序每行只能写一个语句6.C语言源程序文件的后缀是( C ),经过Compile后,生成文件的后缀是( A ),经过Build后,生成文件的后缀是( B )。
A..obj B..exeC..c D..doc7.Visual C++ 6.0 IDE的编辑窗口的主要功能是( A ),输出窗口的主要功能是( D ),调试器(Debug)的主要功能是(C)。
A.建立并修改程序B.将C源程序编译成目标程序C.跟踪分析程序的执行D.显示编译结果信息(如语法错误等)8.在Visual C++ 6.0开发环境下,C程序按工程(project)进行组织,每个工程可包括( D )C/CPP源文件,但只能有( A )main函数。
A.1个B.2个C.3个D.1个以上(含1个)9.调试程序时,如果某个语句后少了一个分号,调试时会提示错误,这种情况一般称之为( A )。
而某个“计算2的平方”的程序在调试时没有提示出错,而且成功执行并计算出了结果,只是结果等于5,这种情况一般称之为( D )。
A.语法错误B.正常情况C.编译器出错D.逻辑设计错误二、简答题1.如何使用注释语句?使用注释有何好处?2.C程序对书写格式有何要求?规定书写格式有何好处?符号名包括模块名、常量名、标号名、子程序名等。
这些名字应该能反映它所代表的实际东西,具有一定的意义,使其能够见名知义,有助于对程序功能的理解3.简述C程序上机调试的一般步骤?编辑,编译,连接,运行4.简述C程序从.c源文件到.exe可执行文件的生成过程?第一步是预处理,包括语法检查等工作。
gcc -P abc.c第二步由源程序生产汇编语言代码。
gcc -S abc.c会生成abc.s文件,这个文件里就是汇编代码。
第三步编译器生成目标代码,一个源文件生成一个目标代码。
gcc -c abc.c会生成abc.o第四步连接器从目标代码生成可执行文件。
gcc abc.o题解2 基本数据类型与运算符2.1 习题一、选择题1.C语言中最基本的非空数据类型包括( D )。
A.整型、浮点型、无值型B.整型、字符型、无值型C.整型、浮点型、字符型D.整型、浮点型、双精度型、字符型2.C语言中运算对象必须是整型的运算符是( A )。
A.% B./C.= D.〈= 3.若已定义x和y为int类型,则执行了语句x=1;y=x+3/2;后y的值是( B )。
A.1 B.2C.2.0 D.2.5 4.若有以下程序段:int a=1,b=2,c;c=1.0/b*a;则执行后,c中的值是( A )。
A.0 B.0.5C.1 D.2 5.能正确表示逻辑关系:"a≥10或a≤0"的C语言表达式是( D )。
A.a>=10 or a<=0 B.a>=0|a<=10 C.a>=10 && a<=0 D.a>=10‖a<=0 6.下列字符序列中,不可用作C语言标识符的是( B )。
A.xds426 B.No.1C._ok D.zwd7.在printf( )函数中,反斜杠字符'\'表示为( D )。
A.\' B.\0C.\n D.\\8.设先有定义:int a=10;则表达式a+=a *=a的值为( D )。
A.10 B.100C.1000 D.2009.设先有定义:int a=10;则表达式(++a)+(a --)的值为( C )。
A.20 B.21C.22 D.1910.有如下程序:#include <stdio.h>main( ){int y=3,x=3,z=1;printf("%d %d\n",(++x,y++),z+2);}运行该程序的输出结果是( D )。
A.3 4 B.4 2C.4 3 D.3 3 11.假定x、y、z、m均为int型变量,有如下程序段:x=2; y=3; z=1;m=(y<x)?y: x;m=(z<y)?m:y;则该程序运行后,m的值是( C )。
A.4 B.3C.2 D.112.以下选项中合法的字符常量是( B )。
A."B" B.'\010'C.68 D.D13.设x=3,y=4,z=5,则表达式((x+y)>z)&&(y==z)&&x||y+z&&y+z 的值为( B )A.0 B.1C.2 D.3((x+y)>z)&&(y==z)&&x||(y+z)&&(y+z)=1&&0&&3||9&&9=0||1=1 14.如果a=1,b=2,c=3,d=4,则条件表达式a<b?a:(c<d?c:d的值为( A )。
A.1 B.2C.3 D.415.设int m=1,n=2; 则m++==n的结果是( A )。
A.0 B.1C.2 D.3二、填空题1.表达式10/3的结果是 3 ;10%3的结果是 1 。
2.执行语句:int a=12;a+=a-=a*a;后的值是-264 。
short b=65535;printf("%d",b);4.以下程序的执行结果是X=3,a=2,b=2 。
#include<stdio.h>main( ){int a,b,x;x=(a=3,b=a--);printf("x=%d,a=%d,b=%d\n",x,a,b);}5.以下程序的执行结果是0 。
#include<stdio.h>main( ){float f1,f2,f3,f4;int m1,m2;f1=f2=f3=f4=2;m1=m2=1;printf("%d\n",(m1=f1>=f2)&&(m2=f3<f4)); }6.以下程序的执行结果是n=1 。
#include<stdio.h>main( ){float f=13.8;int n;n=(int)f%3;printf("n=%d\n",n);}三、简答题2.简述转义字符的用途并举实例加以说明。
题解3 控制结构3.1 习题一、选择题1.结构化程序模块不具有的特征是( B )。
A.只有一个入口和一个出口B.要尽量多使用goto语句C.一般有顺序、选择和循环3种基本结构D.程序中不能有死循环2.C语言中,逻辑“真”等价于( C )。
A.整数 1 B.整数0 C.非0数D.TRUE3.以下4条语句中,有语法错误的是( D )。
A.if (a>b) m=a;B.if (a<b) m=b;C.if ((a=b)>=0) m=a;D.if ((a=b;)>=0) m=a;4.若i,j均为整型变量,则以下循环*( C )。
for (i=0,j=2; j=1; i++,j--)printf("%5d, %d\n", i, j);A.循环体只执行一次B.循环体执行二次C.是无限循环D.循环条件不合法5.以下程序段,执行结果为( A )。
a=1;do{a=a*a; }while(!a);A.循环体只执行一次B.循环体执行二次C.是无限循环D.循环条件不合法6.C语言中while与do-while语句的主要区别是( A )。
A.do-while的循环体至少无条件执行一次B.do-while允许从外部跳到循环体内C.while的循环体至少无条件执行一次D.while的循环控制条件比do-while的严格7.语句while (!a);中条件等价于( D )。
A.a!=0 B.~aC.a==1 D.a==08.以下程序的运行结果为( D )。
#include <stdio.h>main( ){int i=1,sum=0;while(i<=100)sum+=i;i++;printf("1+2+3+...+99+100=%d", sum);}A.5050 B.1C.0 D.程序陷入死循环9.以下程序的运行结果为( A )。
#include <stdio.h>main( ){int sum,pad;sum=pad=5;pad=sum++;pad++;++pad;printf("%d\n", pad);}A.7 B.6 C.5 D.4 10.以下程序的运行结果为( D )。
#include <stdio.h>main( ){int a=2,b=10;printf("a=%%d,b=%%d\n", a,b);}A.a=%2,b=%10B.a=2,b=10C.a=%%d,b=%%d D .a=%d,b=%d11.为了避免嵌套的if-else语句的二义性,C语言规定else总是( C )。
A.与缩排位置相同的if组成配对关系B.与在其之前未配对的if组成配对关系C.与在其之前未配对的最近的if组成配对关系D.与同一行上的if组成配对关系12.对于for (表达式1; ;表达式3)可理解为( B )。
A.for (表达式1; 0 ;表达式3)B.for (表达式1; 1 ;表达式3)C.for (表达式1;表达式1;表达式3)D.for (表达式1;表达式3;表达式3)二、程序填空1.下面程序的功能是计算n!。
#include <stdio.h>main ( ){int i, n;long p;printf ( "Please input a number:\n" );scanf ("%d", &n);p= 1 ;for (i=2; i<=n; i++)p*=i或p=p*i ;printf("n!=%ld", p);}2.下面程序的功能是:从键盘上输入若干学生的成绩,统计并输出最高和最低成绩,当输入负数时结束输入。