*main()*{int a=3,b=4,c=8,d=4,m=1,n=3; *printf(\"%d\\n\*} A.0 B.1 C.2 D.3 ~A
35.能正确表示“当x的取值范围在[1,10]和[100,110]范围内为真,否则为假”的表达式是( )。
A.(x>=1)&&(x<=10)&&(x>=100)&&(x<=110) B.(x>=1)||(x<=10)||(x>=100)||(x<=110) C.(x>=1)&&(x<=10)||(x>=100)&&(x<=110) D.(x>=1)||(x<=10)&&(x>=100)||(x<=110) ~C
36.若有定义:int a=4,b=5;float x=3.4,y=2.1;则下面表达式的值为( )。 *(float)(a+b)/2+(int)x%(int)y A.5.5 B.55 C.5.500000 D.55.00000 ~C
37.若a为int型变量,则执行以下语句后,a的值为( )。 *a=5;a+=a-=a*a; A.25 B-40
C40 D-14 ~B
38.若已定义x和y为整型变量,且x=7,则表达式y=2.3+x/2的值是( )。 A.6 B.5 C.5.0 D.6.0 ~B
39.有以下程序: *main()
*{int y=1,x=2,z=3;
*printf(\"%d,%d\\n\*}
*执行后的输出结果是( )。 A.3,5 B.2,5 C.3,3 D.1,5 ~D
40.以下程序的输出结果是( )。 *main() *{int a=1,b=2;
*printf(\"%d,%d\\n\*} A.1,2 B.1,3 C.0,2
D.0,3 ~D
41.C语言程序的执行是( )。
A.从程序的主函数开始,到程序的主函数结束 B.从程序的主函数开始,到程序的最后一个函数结束 C.从程序的第一个函数开始,到程序的最后一个函数结束 D.从程序的第一个函数开始,到程序的主函数结束 ~A
42.下面说法正确的是( )。 A.一个C程序可以有多个函数
B.一个C语言的函数中只允许有一对花括号
C.C语言一个语句可以写在一行内,也可以写在多行内 D.在对C程序进行编译时,可以发现注释行中的拼写错误 ~C
43.以下说法正确的是( )。
A.C程序是以函数为基本单位的,整个程序由函数组成 B.C语言程序的一条语句可以写在不同的行上
C.C程序的注释行对程序运行不起作用,所以注释应该尽可能少写 D.C程序的每个语句都以分号结束 ~C
44.以下标示符不是关键字的是( )。 A.break B.char C.Switch D.return ~C
45.若要求定义具有10个int型元素的一维数组a,则下列定义语句中错误的是( )。 A.#define N 10 *int a[N] B.#define n 5 *int a[2*n] C.int a[5+5] D.int n=10,a[n] ~D
46.下设有如下程序段 *char s[20]=\"Beijing\*p=s;
*则执行p=s;语句后,以下叙述正确的是( )。 A.可以用*p表示s[0]
B.s数组中元素的个数和p所指字符串长度相等 C.s和p都是指针变量
D.数组s中的内容和指针变量p中的内容相同 ~A
47.下列数组定义中错误的是( )。 A.int x[][3]={0};
B.int x[2][3]={{1,2},{3,4},{5,6}}; C.int x[][3]={{1,2,3},{4,5,6}}; D.int x[2][3]={1,2,3,4,5,6}; ~B
48.有以下程序: *main()
*{int i,t[][3]={9,8,7,6,5,4,3,2,1}; *for(i=0;i<3;i++) printf(\"%d\*}
*程序执行后的输出结果是( )。 A.7 5 3 B.3 5 7 C.3 6 9 D.7 5 1 ~B
49.若有定义语句:int a[3][6];,按内存中的存放顺序,a数组的第10元素是(A.a[0][4] B.a[1][3] C.a[0][3] D.a[1][4] ~B
50.以下错误的定义语句是( )。 A.int x[][3]={{0},{1},{1,2,3}}; B.int x[4][3]={{1,2,3},{1,2,3},{1,2,3}}; C.int x[4][]={{1,2,3},{1,2,3},{1,2,3}}; D.int x[][3]={1,2,3,4}; ~C
51.以下不正确的定义语句是( )。 A.double x[5]={1.0,2.0,3.0,4.0,5.0}; B.int y[5]={0,1,2,3,4,5}}; C.char c[]={'1','2','3','4','5'}; D.char c2[]={'a','b','c'}; ~B
52.若有以下定义,则正确引用数组元素的是( )。 *int a[5],*p=a; A.*&a[5] B.*a+2 C.*(p+5)
)。 D.*(a+2) ~D
53.若有说明:int a[][3]={0,0};则不正确的叙述是( )。 A.数组a的每个元素的初值都是0 B.数组a的第一维大小为1 C.数组a的行数为1
D.只有元素a[0][0]和a[0][1]初值为0,其余元素得不到初值0 ~D
54.下列二维数组初始化语句中,不正确的是( )。 A.int b[][2]={1,2,3,4,5,6,7}; B.int b[3][5]={0,0,0};
C.int b[][4]={{1,2},{3,4,5},{6}}; D.int b[3][2]={(1,2),(3,4),(5,6)}; ~D
55.有以下程序: *main()
*{int aa[5][5]={{1,2,3,4},{5,6,1,8},{5,9,10,2},{1,2,5,6}}; *int s=0,i; *for(i=0;i<4;i++) *s+=aa[i][2]; printf(\"%d\*}
*程序运行后的输出结果是( )。 A.26 B.19 C.10 D.20 ~B
56.*以下程序的输出结果是[<4>]。 *#include *main() *{* int a[5]={2,4,6,8,10},*p; * p=a;p++; * printf(\"%d\*}
*以下程序的输出结果是[<3 5>]。 *#include *void swap(int *a,int *b) *{ * int *t ; * t=a;a=b;b=t; *} *main() *{* int i=3,j=5,*p=&i,*q=&j; * swap(p,q);printf(\"%d %d\*}
*下面程序段的运行结果是[<68>]。 *char str[]=\"ABCD\*printf(\"%d\\n\
设已有定义:float x;,则下列对指针变量p进行定义且赋初值的语句中正确的是( )。
A.float *p=1024; B.int *p=(float)x; C.float p=&x;
D.float *p=&x; ~D
57.设有定义语句int (*f)(int);,则以下叙述正确的是( )。 A.f是基类型为int的指针变量
B.f是指向函数的指针变量,该函数具有一个int类型的形参 C.f是指向int类型一维数组的指针变量
D.f是函数名,该函数的返回值是其类型为int类型的地址 ~B
58.设有定义:int n1=0,n2,*p=&n2,*q=&n1;,以下赋值语句中与n2=n1;语句等价的是( )。 A.*p=*q B.p=q C.*p=&n1; D.p=*q ~A
59.在16位编译系统上,若有定义int a[]={10,20,30},*p=&a;,当执行p++;后,下列说法错误的是( )。 A.p向高地址移了一个字节 B.p向高地址移了一个存储单元 C.p向高地址移了两个字节 D.p与n+1等价 ~A
60.若有定义语句:int k[2][3],*pk[3];,则下列语句中正确的是( )。 A.pk=k;
B.pk[0]=&k[1][2]; C.pk=k[0]; D.pk[1]=k;
~B
61.若有定义:char(*p)[6];则标识符p( )。 A.是一个指向字符型变量的指针 B.是一个指针数组名
C.是一个指针变量,它指向一个含有6个字符型元素的一维数组 D.定义不合法 ~C
62.下面程序段的运行结果是( )。 #include void main(){ char str[]=\"abc\ printf(\"%d\\n\} A.67 B.0
C.字符'C'的地址 D.字符'C' ~B
63.若有以下定义,则对a数组元素的正确引用是( )。 int a[5],*p=a; A.*&a[5] B.*a+1 C.*(p+5) D.*(a+2) ~D
64.若变量a和b已定义为int类型并赋值21和55,要求用printf函数以a=21,b=55的形式输出,请写出完整的输出语句[*执行下列程序时,输入1234567,则输出结果是[<12 34>]。 *#include *main() *{ int a=1,b;* scanf(\"%2d%2d\*}
数字字符0的ASC||值为48,运行下列程序的输出结果是( )main()
{ char a='1',b='2'; printf(\"%c,\ printf(\"%d\\n\} A.3,2 B.50,2 C.2,2 D.2,50 ~C
65.下列不合法的字符常量是( )。 A.'\\018' B.'\\\"' C.'\\\\' D.'\\xcc' ~A
66.下列能正确定义字符串的语句是( )。 A.char str[]={'\\064'}; B.char str=\"kx43\"; C.char str=''; D.char str[]=\"\\0\";
。 ~D
67.下列合法的字符型常量是( )。 A.'\\x13' B.'\\081' C.'65' D.\"\\n\" ~A
68.已知大写字母A的ASC||码是65,小写字母a的ASC||码是97。下列不能将变量c中的大字字母转换为对应小写字母的语句是( )。 A.c=(c-'A')%26+'a' B.c=c+32 C.c=c-'A'+'a' D.c=('A'+C)%26-'a' ~D
69.已知字符'A'的ASC||码值是65,字符变量c1的值是'A',c2的值是'D'。执行语句printf(\"%d,%d\后,输出结果是( )。 A.A,B B.A,68 C.65,66 D.65,68 ~C
70.下列正确的字符串常量是( )。 A.\"\\\\\\\" B.'abc'
C.Olympic Games D.\"\" ~D
71.要求通过while循环不断读入字符,当读入字母N时结束循环。若变量已正确定义,下列正确的程序段是( )。
A.while((ch=getchar())!='N') printf(\"%c\B.while(ch=getchar()!='N') printf(\"%c\C.while(ch=getchar()=='N') printf(\"%c\D.while((ch=getchar())=='N') printf(\"%c\~A
72.有以下程序段( )。 char ch;int k; ch='a';k=12;
printf(\"%c,%d,\printf(\"k=%d\\n\
已知字符a的ASC||十进制代码为97,则执行上述程序段后输出结果是 A.因变量类型与格式描述符的类型不匹配输出无定值 B.输出项与格式描述符个数不符,输出为零值或不定值 C.a,97,12k=12 D.a,97,k=12 ~D
73.有定义语句:int b;char c[10];,则正确的输入语句是( )。 A.scanf(\"%d%s\B.scanf(\"%d%s\C.scanf(\"%d%s\D.scanf(\"%d%s\~B
74.设有定义:int a; float b;,执行scanf(\"%2d%f\语句时,若从键盘输入876543.0,a和b的值分别是( )。 A.876和543.000000 B.87和6.000000C.87和543.000000 D.76和543.000000 ~B
75.设变量均已正确定义,若要通过scanf(\"%d%c%d%c\语句为变量a1和a2赋数值10和20,为变量c1和c2赋字符X和Y。下面的输入形式中正确的是( )(注:□代表空格字符)。 A.10□X□20□Y B.10□X20□Y C.10□X20Y D.10X20□Y ~A76.有下列程序段: int j; float y;char name[50]; scanf(\"%2d%f%s\
当执行上述程序段,从键盘上输入55566 7777abc后,y的值为( )A.55566.0 B.566.0 C.7777.0 D.566777.0 ~B
77.以下选项中不是字符常量的是( )。 A.'\\v' B.'\\x2a' C.'a' D.\"\\0\" ~D
78.以下选项中非法的字符常量是( )。 A.'\\\\'
。 B.'\\020\" C.'\\xAA' D.'0' ~B
79.在执行完下面的C语句段之后,则B的值是( )。 char a='A'; int b;
B=((34&&56)&&(a<'b')); A.0 B.1 C.TRUE D.FALSE ~B
80.若变量已正确定义,以下正确的程序段是( )。A.while(ch=getchar()=='\\N') putchar(ch); B.while((ch=getchar())=='\\n')putchar(ch); C.while((ch=getchar())!='\\N')putchar(ch); D.while((ch=getchar())!='\\n')putchar(ch); ~D
81.若变量已正确定义,下面程序段的输出结果是( )#include main(){float x=1.236547;
printf(\"%f\\n\}
A.1.237000
B.输出格式说明与输出项不匹配,输出无定值 C.1.236000 D.1.24
。 ~A
82.设已定义x为double类型变量: #include main(){ float x=323.82631; printf(\"%.2e\\n\}
则以上语句( )。
A.输出格式描述符的域宽不够,不能输出 B.输出为32.38e+01 C.输出为3.24e+002 D.输出为3.24e2 ~C
83.若有以下定义和语句: int u=011,v=0x11,w=11; printf(\"%o,%x,%d\\n\则输出结果是( )。 A.9,17,11 B.9,11,11 C.11,11,11 D.11,17,11 ~C
84.语句\"printf(\"a\\bhow\\'are\\'y\\\\\\bou\\n\");\"的输出结果是( )A.a\\bhow\\'are\\'y\\\\bou B.a\\bhow\\'are\\'y\\bou C.how'are'you D.ahow'are'y\\bou ~C
。 85.若变量已正确定义,要求通过scanf(\"%c%d%c%d\语句给变量a和b赋数值32和45,给变量c1和c2赋字符A和B;以下选项中数据从第1列开始输入,正确的输入形式是( )。 A.A32<回车>B45<回车> B.A45<回车>B32<回车> C.A32B45<回车> D.A 32 B 45<回车> ~D
86.若有\"double a;\",则正确的输入语句是( )。 A.scanf(\"%lf\B.scanf(\"%f\C.scanf(\"%lf\D.scanf(\"%le\~D
87.已知i、j、k为int型变量,若要从键盘输入2,3,4<回车>,使i、j、k的值分别为2、3、4,以下正确的输入语句是( )。 A.scanf(\"%3d,%3d,%3d\B.scanf(\"%d,%d,%d\C.scanf(\"%d%d%d\D.scanf(\"i=%d,j=%d,k=%d\~B
88.下列程序中,fun()函数的功能是计算x^2-2x+6,主函数中将调用fun() 函数计算:
y1=(x+8)^2-2(x+8)+6 y2=sin^2(x)-2sin(x)+6 请填空。
#include \"math.h\"
double fun(double x) {return(x*x-2*x+6);} main()
{ double x,y1,y2; printf(\"Enter x:\"); scanf(\"%lf\ y1=fun([]); y2=fun([]);printf(\"y1=%lf,y2=%lf\\n\}
有下列程序:
int sub(int n) {return (n/10+n%10);} main() { int x,y; scanf(\"%d\ y=sub(sub(sub(x))); printf(\"%d\\n\}
若运行时输入:1234,程序的输出结果是[<10>]。 下列运算符中优先级最高的运算符是()。 A.! B.% C.-= D.&& ~A89.下列运算符中优先级最低的运算符是()。 A.|| B.!= C.<= D.+ ~A
90.为表示关系x≥y≥z,应使用的C语言表达式是()。
A.(x>=y)&&(y>=z) B.(x>=y)AND(y>=z) C.(x>=y>=z) D.(x>=y)&(y>=z) ~A
91.设a、b和c都是int型变量,且a=3,b=4,c=5;则以下的表达式中,值为0的表达式是()。 A.a&&b B.a<=b C.a||b+c&&b-c D.!(a92.若有int s[4]={1,2,3,4};则s[s[0]+2*s[2]-s[3]]的值是()。 A.1 B.2 C.3 D.4 ~D
93.对数组的描述正确的是()。
A.数组一旦定义去大小是固定的,但数组元素的类型可以不同 B.数组一旦定义去大小是固定的,但数组元素的类型必须相同 C.数组一旦定义去大小是可变的,但数组元素的类型可以不同 D.数组一旦定义去大小是可变的,但数组元素的类型必须相同 ~B
94.对字符串\"Boy\"进行完整赋值的操作是() A.char s[3]={'B','o','y'} B.char s[]=\"Boy\" C.char s[3]={\"Boy\
D.char s[3];s=\"Boy\" ~B
95.在c语言中引用数组元素时,其数组下标的数组类型允许是() A.整型常量 B.整型表达式
C.整型常量或整型表达式 D.任何类型的表达式 ~C
96.对以下说明语句的正确理解是() *int a[10]={6,7,8,9,10}
A.将5个初值依次赋给a[1]至a[5] B.将5个初值依次赋给a[0]至a[4] C.将5个初值依次赋给a[6]至a[10]
D.因为数组长度与初值的个数不相同,所以此语句不正确 ~B
97.以下程序段给数组所有元素输入数据,应在下划线处填入的是() *main() *{
*int a[10],i=0;
*while(i<10) scanf(\"%d\*: *: *} A.a+(i++) B.&a(i+1) C.a+i D.&a[++i]
~D
98.以下程序的输出结果是() *main() *{
* int a[]={2,4,6,8},y=1,x,*p; *p=&a[1];
*for(x=0;x<3;x++) y+=*(p+x); *printf(\"%d\\n\*} A.17 B.18 C.19 D.20 ~C
99.下述函数定义形式正确的是() A.int f(int x;int y) B.int f(int x, y) C.int f(int x,int y) D.int f(x,y:y) ~C
100.关于函数参数,说法正确的是()
A.实参与其对应的形参各自占用独立的内存单元 B.实参与其对应的形参共同占用一个内存单元 C.只有当实参和形参同名时才占用同一个内存单元 D.形参是虚拟的,不占用内存单元 ~A
101.用数组名作为函数的实参时,传递给形参的是() A.数组的首地址
B.数组的第一个元素 C.数组中的全部元素 D.数组的元素个数 ~A
102.复合语句中定义的变量的作用范围是() A.整个源文件 B.整个函数 C.整个程序
D.所定义的复合语句 ~D
103.一个函数的返回值由()确定 A.return语句中的表达式 B.调用函数的类型 C.系统默认的类型 D.被调用函数的类型 ~D
104.以下说法正确的是()
A.C语言程序总是从第一个定义的函数开始执行
B.在C语言程序设计中,要调用的函数必须在main函数中定义 C.C语言程序总是从main函数开始执行
D.C语言程序中的main函数必须放在程序的开始部分 ~C
105.以下函数的类型是() *fff(float x) *{
*printf(\"\*}
A.与参数x的类型相同 B.void类型 C.int类型 D.无法确定 ~C
106.以下程序的输出结果是() *fun(int a,int b) *{int c; *c=a+b; *retutn c; *} *main()
*{int x=6,y=7,z=8,r; *r=func((x--,y++,x+y),z--); *printf(\"%d\\n\*} A.11 B.20 C.21 D.31 ~C
107.当说明一个结构体变量时,系统分配给它的内存是() A.各成员所需内存总量的总和 B.结构中第一个成员所需内存量 C.成员中占内存量最大者所需的容量 D.结构中最后一个成员所需内存量
~A
108.设有以下说明语句: *struct stu *{int a; * float b; *}stutype;
*则下面叙述不正确的是() A.strut是结构体类型的关键字 B.strut stu是用户定义的结构体类型 C.stutype是用户定义的结构体类型名 D.a和b都是结构体成员名 ~C
109.C语言结构体类型变量在执行期间() A.所有成员一直驻留在内存中 B.只有一个成员驻留在内存中 C.部分成员驻留在内存中 D.没有成员驻留在内存中 ~A
110.若想对文本文件只进行读操作,打开此文件的方式为() A.\"r\" B.\"W\" C.\"a\" D.\"r+\" ~A
111.如果要打开C盘file文件夹下的abc.dat文件,fopen函数中第一个参数应为() A.c:file\\abc.dat B.c:\\file\\abc.dat
C.\"c:\\file\\abc.dat\" D.\"c:\\\\file\\\\abc.dat\" ~D
112.用fopen函数打开文件,操作完毕后用()函数关闭它 A.fopen B.open C.fclose D.close ~C
113.以下可作为函数fopen中第一个参数的正确格式是() A.c:user\est.txt B.c:\est.txt C.\"c:\est.txt\" D.\"c:\\\\\est.txt\" ~D
114.若执行fopen函数时发生错误,则函数的返回值是() A.地址值 B.0 C.1 D.EOF ~B
115.若要用fopen函数打开一个新的二进制文件,该文件要既能读也能写,则文件方式字符串应是() A.\"ab++\" B.\"wb+\" C.\"rb+\" D.\"ab\" ~B
116.若以\"a+\"方式打开一个已存在的文件,则以下叙述正确的是()
A.文件打开时,原有文件内容不被删除,位置指针移到文件末尾,可作添加和读操作 B.文件打开时,原有文件内容不被删除,位置指针移到文件开头,可作重写和读操作 C.文件打开时,原有文件内容不被删除,只可作写操作 D.以上各种说法皆不正确 ~A
117.在C语言中,函数返回值的类型最终取决于()。 A.函数定义时在函数首部所说明的函数类型 B.return语句中表达式值的类型
C.调用函数时主调函数所传递的实参类型 D.函数定义时形参的类型 ~A
118.若各选项中所用变量已正确定义,fun()函数中通过return语句返回一个函数值,下列选项中错误的程序是()。 A.main() {x=fun(2,10);} float fun(int a,int b){} float fun(int a,int b){} B.main() {x=fun(i,j);} float fun(int,int); C.main() {x=fun(2,10);} float fun(int a,int b) {} D.main()
{float fun(int i,int j); x=fun(i,j);}
float fun(int a,int b){} ~A
119.若函数调用时的实参为变量时,下列关于函数形参和实参的叙述中正确的是()。
A.函数的实参和其对应的形参共占同一个存储单元 B.形参只是形式上的存在,不占用具体的存储单元 C.同名的实参和形参占同一个存储单元 D.函数的形参和实参分别占用不同的存储单元 ~D
120.在一个C源程序文件中所定义的全局变量,其作用域为()。 A.所在文件的全部范围 B.所在程序的全部范围 C.所在函数的全部范围
D.由具体定义位置和extern说明来决定范围 ~D
121.C语言规定,函数返回值的类型是()。 A.由调用该函数时的主调函数类型所决定 B.由return语句中的表达式类型所决定 C.由调用该函数时系统临时决定
D.由定义该函数时所指定的数值类型决定 ~D
122.以下叙述中,错误的是()。
A.在同一个C程序文件中,不同函数中可以使用名字相同的变量 B.在main()函数体内定义的变量是全局变量 C.形参是局部变量,函数调用完成即失去意义
D.若同一文件中全局和局部变量同名,则全局变量在局部变量作用范围内不起作用
~B
123.以下函数值的类型是()。 fun(double x) { float y; y=3*x-4; return y; } A.int B.不确定 C.void D.float ~A
124.有以下程序: int fl(double a) {return a*a;} int f2(int x,int y) { double a,b; a=f1(x); b=f1(y); return a+b; } main() { double w; w=f2(2.1,4.0); }
变量w的值是()。 A.20.21 B.20
C.20.0 D.0.0 ~C
125.调用函数时,当实参和形参都是简单变量时,它们之间数据传递的过程是()。 A.实参将其值传递给形参,调用结束时形参再将其值回传给实参 B.实参将其地址传递给形参,调用结束时形参再将其地址回传给实参 C.实参将其地址传递给形参,并释放原先占用的存储单元
D.实参将其值传递给形参,调用结束时形参并不将其值回传给实参 ~D
126.下面说法不正确的是()。 A.调用函数时,实参可以是表达式
B.调用函数时,实参和形参可以共用内存单元
C.调用函数时,将实参的值复制给形参,使实参变量和形参变量在数值上相等 D.调用函数时,实参与形参的类型必须一致 ~B
127.下面函数调用语句含有实参的个数为()。 func((exp1,exp2),(exp3,exp4,exp5)); A.1 B.2 C.3 D.5 ~B
128.在C语言中,函数调用时()。 实参和形参各占独立的存储单元 实参和形参共用存储单元
由系统自动确定实参和形参是否共用存储单元
由用户指定实参和形参是否共用存储单元 ~A
129.C语言规定,程序中各函数之间()。 既允许直接递归调用也允许间接递归调用 既不允许直接递归调用也不允许间接递归调用 允许直接递归调用不允许间接递归调用 不允许直接递归调用允许间接递归调用 ~A
130.下列能正确定义一维数组的选项是()。 int a[5]={0,1,2,3,4,5}; char a[]={0,1,2,3,4,5}; char a={'A','B','C'}; int a[5]=\"0123\"; ~B
131.下列叙述中错误的是()。
对于double类型数组,不可以直接用数组名对数组进行整体输入或输出 数组名代表的是数组所占存储区的首地址,其值不可改变
在程序执行中,数组元素的下标超出所定义的下标范围时,系统将给出“下标越界”的出错信息
可以通过赋初值的方式确定数组元素的个数 ~C
132.有下列程序: #include main(){ char p[]={'a','b','c'},q[10]={'a','b','c'}; printf(\"%d%d\\n\}
下列叙述中正确的是()。
在给p和q数组赋初值时,系统会自动添加字符串结束符,故输出的长度都为3 由于p数组中没有字符串结束符,长度不能确定,但q数组中字符串长度为3 由于q数组中没有字符串结束符,长度不能确定,但p数组中字符串长度为3 由于p和q数组中都没有字符串结束符,故长度都不能确定 ~A
133.若要求从键盘读入含有空格字符的字符串,应使用函数()。 getc() gets() getchar() scanf() ~B
134.当用户要求输入的字符串中含有空格时,应使用的输入函数是()。 scanf() getchar() gets() getc() ~C
135.当有定义语句:char s[10];,若要从终端给s输入5个字符,错误的输入语句是()。 gets(&s[0]); scanf(\"%s\gets(s);
scanf(\"%s\~D
136.当以下叙述中错误的是()。 gets函数用于从终端读入字符串
getchar函数用于从磁盘文件读入字符 fputs函数用于把字符串输出到文件
fwrite函数用于以二进制形式输出数据到文件 ~B
137.下列关于字符串的叙述中正确的是()。 C语言中有字符串类型的常量和变量
两个字符串中的字符个数相同时才能进行字符串大小的比较 可以用关系运算符对字符串的大小进行比较 空串一定比空格打头的字符串小 ~D
138.下面能正确进行字符串赋值的是()。 char s[5]={\"ABCDE\char s[5]={'A','B','C','D','E'}; char*s; s=\"ABCDE\"; char*s;printf(\"%s\~C
139.字符串\"\\\\\\\"ABCDEF\\\"\\\\\"的长度是()。 15 10 7 8 ~B
140.下面各语句行中,能正确进行赋值字符串操作的是()。 char s[5]={'a','b','c','d','e'}; char *s;gets(s); char *s;*s=\"ABCDEF\"; char s[5];scanf(\"%s\
~B
141.设已执行预编译命令#include,以下程序段的输出结果是()。 char s[]=\"abcdefg\"; printf(\"%d\\n\7 8 9 10 ~A142.若已包括头文件且已有定义char s1[18],s2={\"ABCDE\和int i,现要将字符串\"ABCDE\"赋给s1,下述语句错误的是()。 strcpy(s1,s2); strcpy(s1,\"ABCDE\"); s1=\"ABCDE\"; for(i=0;i<6;i++) s1[i]=s2[i]; ~C143.下列程序运行后的输出结果是[<10 20 0>]。 main() {int a,b,c;
a=10;b=20;c=(a%b<1)||(a/b>1); printf(\"%d %d %d\\n\}
144.下列程序用于判断a、b、c能否构成三角形,若能输出YES,否则输出NO。请填空。 main() {float a,b,c;
scanf(\"&f&f&f\
if([<(a+b>c)&&(a+c>b)&&(b+c>a)>]) printf(\"YES\\n\");
else printf(\"NO\"); }
145.已有定义:char c='';int a=1,b;执行b!=c&&a;后b的值为[<0>]。 下列程序的输出结果是[<1>]。 main()
{int a=1,b=2,c=3; if(c=a) printf(\"%d\\n\else printf(\"%d\\n\} }
146.下列程序的输出结果是[<1>]。 main()
{int x,a=1,b=2,c=3,d=4;
x=(ax)?x:d; printf(\"%d\\n\}
147.下列程序的输出结果是[<0235>] main() {int k=5,n=0; do {switch(k)
{case 1: case 3:n+=1;k--;break; default:n=0;k--;
case 2: case 4:n+=2;k--;break; }
printf(\"%d\}while(k>0&&n<5); }
148.下列程序的输出结果是[<25>]
main() {int i;
for(i=1;i<=10;i++) { if((i*i>=20)&&(i*i<=100)) break; }
printf(\"%d\\n\}
149.下列程序的输出结果是[<2,2,0>] main()
{int a=-5,b=1,c=1; int x=0,y=2,z=0; if(c>0) x=x+y; if (a<=0) { if(b>0)
if(c<=0) y=x-y; }
else if (c>0) y=x-y; else z=y;
printf(\"%d,&d,&d\\n\}
150.有下列程序段,且变量已正确定义和赋值: for(s=1.0,k=1;k<=n;k++)s=s+1.0/(k*(k+1)); printf(\"s=%f\\n\\n\",s);
151.请填空,使下列程序段的功能与之完全相同。 s=1.0;k=1;
while([]) {s=s+1.0/(k*(k+1));[];} printf(\"s=%f\\n\\n\",s);152.下列程序的功能是:将输入的正整数按逆序输出。例如,如输入135则输出531,请填空。 main() {int n,s; scanf(\"%d\do
{s=n%10;printf(\"%d\while (n!=0); }
153.下列程序的功能是计算:s=1+12+123+1234+12345.请填空。 main() {int t=0,s=0,i; for(i=1;i<=5;i++) {t=i+[];s=s+t;} printf(\"%d\\n\}154.下列程序的运行结果是[<32>]。 main() {int i=0,a=0; while(i<20) {for(;;)
{if(i%10==0)break; else i--; } i+=11; a+=i; }
printf(\"%d\\n\}
155.在下列给出的表达式中,与while(E)中的(E)不等价的表达式是()。 (!E==0) (E>0||E<0) (E==0) (E!=0) ~B
156.已知字母A的ASCII值为65,若变量kk为char型,以下不能正确判断出kk的值为大写字母的表达式是()。 kk>='A'&&kk<='Z' !(kk>='A'||kk<='Z')
(kk+32)>='a'&&(kk+32)<='z' isalpha(kk)&&(kk<91) ~B
157.设有定义:int a=2,b=3,c=4;,则下列选项中值为0的表达式是()。 (!a==1)&&(!b==0) (aa||(b+b)&&(c-a) ~A
158.下列关于逻辑运算符两侧运算对象的叙述中正确的是()。 只能是整数0或1 只能是整数0或非0 可以是结构体类型的数据 可以是任意合法的表达式 ~D
159.当变量c的值不为2、4、6时,值也为真的表达式是()。 (c==2)||(c==4)||(c==6) (c>=2&&c<=6)||(c!=3)||(c!=5)
(c>=2&&c<=6)&&!(c%2) (c>=2&&c<=6)&&(c%2!=1) ~C
160.在嵌套使用if语句时,C语言规定else总是()。 和之前与其具有相同缩进位置的if配对 和之前与其最近的if配对
和之前与其最近的且不带else的if配对 和之前的第一个if配对 ~C
161.设变量x和y均已正确定义并赋值。下列if语句中,在编译时将产生错误信息的是()。 if(x++) ; if(x>y&&y!=0) if (x>0) x-- else y++ if (y<0){;} else x++; ~C
162.若变量已正确定义,有以下程序段: *int a=3,b=5,c=7; *if(a>b) a=b;c=a; *if(c!=a) c=b;
*printf(\"%d,%d,%d\\n\*其输出结果是()。 程序段有语法错误 3,5,3 3,5,5 3,5,7 ~B
163.下列叙述中正确的是()。
break只能用于 switch语句 switch语句中必须使用default
break必须与switch语句中的case配对使用 在switch中,不一定使用break ~D
164.若变量已正确定义,以下表达式错误的是()。 a/b+c a%(5.0)
a=1/3*(x=y=10,x*2) a=b=c ~B
165.下列程序运行后的输出结果是()。 *main()
*{int a=4,b=3,c=2,d=1; *printf(\"%d\*} 1 3 2 4 ~A
166.若a=3,b=4,c=5,d=6,则条件表达式a167.执行下面程序中的输出语句后,a的值是()。
*main() *{int a;
*printf(\"%d\\n\*} 17 37 6 13 ~C
168.当a=1,b=2,c=3,d=4时,执行下面程序段后,x的值是()。 *if(a169.有下列程序: *main() *{int k=5;
*while(--k) printf(\"%d\*printf(\"\\n\"); *}
*执行后的输出结果是()。 1 2 4 死循环 ~A
170.有下列程序段: int n,t=1,s=0; scanf(\"%d\
do {s=s+t;t=t-2;}while(t!=n);
为使此程序不陷入死循环,从键盘输入的程序应该是()。 任意正奇数 任意负偶数 任意正偶数 任意负奇数 ~D
171.若变量已正确定义,有下列程序段: *i=0
*do printf(\"%d,\*printf(\"%d\\n\*其输出结果是()。 0,0 0,1 1,1
程序进入无限循环 ~B
172.有下列程序:
*main() *{int i,j,m=55; *for(i=1;i<=3;i++)
*for(j=3;j<=i;j++) m=m%j; *printf(\"%d\\n\*程序的运行结果是()。 0 1 2 3 ~B
173.下列程序的运行结果是()。 *main() *{int a=1,b;
*for(b=1;b<=10;b++) *{if(a>=8) break; *if(a%2==1) *{a+=5;continue;} *a=3; *}
*printf(\"%d\\n\3 4 5 6 ~B
174.下列叙述中正确的是()。 break语句只能用于switch语句中
continue的作用是使程序的执行流程跳出包含它的所有循环
break语句只能用于循环体内和switch语句中
在循环体内使用break语句和continue语句的作用相同 ~C
175.设有程序段: *int k=12;
*while (k=1)k=k-1;
*则下面描述中正确的是()。 while循环执行10次 循环是无限循环 循环体语句一次也不执行 循环体语句执行一次 ~C
176.下列程序段的运行结果是()。 *x=y=0; *while(x<25) *{y++; *x+=++y; *}
*printf(\"%d,%d\30,9 9,30 3,1 10,30 ~D
177.while和 do while循环的主要区别是()。 do while循环的循环体不能是复合语句 do while循环允许从循环体外转到循环体内
while循环的循环体至少被执行一次 do while循环的循环体至少被执行一次 ~D
178.下面的for语句的循环次数是()。 *for(x=1,y=0;(y!=19&&(x<6);x++); 无限循环 循环次数不定 最多执行6次 最多执行5次 ~D
179.下面结论中错误的是()。
可以用do while语句实现的循环一定可以用while语句实现 可以用for语句实现的循环一定可以用while语句实现 可以用while语句实现的循环一定可以用for语句实现 do while语句和while语句的区别仅是while出现的位置不同 ~D
180.若i,j已定义成int型,则以下程序段中内循环体的总执行次数是()。 *for(i=6;i>0;i--) *for(j=0;j<4;j++){...} 20 24 25 30 ~B
180.以下循环体的执行次数是()。 *main() *{int i,j;
*for(i=0,j=1;i181.下列叙述中正确的是()。只能在循环体内和switch语句内使用break语句 continue的作用是结束整个循环的执行 在循环体内使用break和continue的作用相同 从多层循环嵌套中退出时,只能使用goto语句 ~A
182.若已知:a=1,b=2,则表达式:!(a]。
若s是int型变量,且s=8,则s%3+(s+1)%3表达式的值为[<2>]。
若x和n均是int型变量,且x=12,n=5,则执行y=x%=(n%=2)表达式后y的值为[<0>]。
183.以下说法中正确的是( )。
C语言程序的执行都是从程序的第一个函数开始
在C语言程序中,要调用的函数必须在main()函数中声明 任何C语言程序的执行都是从main()函数开始 C语言程序中的main()函数必须放在程序的最前面 ~C
184.以下合法的标识符是( )。 123 #256 a.55
abhj1_2_3 ~D
185.以下程序的运行结果是( )。 #include *main()*{ int a=3,b=4,c=8,d=4,m=1,n=3; * printf(\"%d\\n\*} 0 1 2 3 ~A
186.有定义语句:int b;char c[10];,则正确的输入语句是( )。 scanf(\"%d%s\scanf(\"%d%s\scanf(\"%d%s\scanf(\"%d%s\~B
187.有下列程序: *main() *{ int m,n,p;
* scanf(\"m=%dn=%dp=%d\* printf(\"%d%d%d\*}
*若想从键盘上输入数据,使变量m的值为123,n的值为456,p的值为789,则正确的输入是( )。 m=123 n=456 p=789 m=123 n=456 p=789
m=123,n=456,p=789 123 456 789 ~A
188.要求当A的值为奇数时,表达式的值为“假”,A的值为偶数时,表达式的值为“真”。则以下能满足要求的是( )。 A%2==1 !(A%2==0) !(A%2) A%2 ~C
189.当把四个表达式用作if语句的控制表达式时,有一个选项与其他三个选项含义不同,这个选项是( )。 k%2 k%2==1 (k%2)!=0 !k%2==1 ~A
190.下列不能正确计算代数式(1/3)sin2(1/2)值的C语言表达式是( )。 1/3*sin(1/2)*sin(1/2) sin(0.5)*sin(0.5)/3 pow(sin(0.5),2)/3 1/3.0*pow(sin(1.0/2),2) ~A
191.在printf的格式字符中,e格式字符的作用是( )。 以十六进制无符号形式输出整数 以带符号的十进制形式输出整数 以指数形式输出实数
以字符形式输出,且只输出一个字符
~C
192.若要从键盘读入含有空格字符的字符串,应使用函数( )。 getc() gets() getchar() scanf() ~B
193.当a=4,b=5,c=7,d=6时,执行下面一段程序: *if(a*执行后,x的值为( )。 1 2 3 4 ~B
194.下面4个关于C语言的结论中错误的是( )。
可以用do...while语句实现的循环一定可以用while语句实现 可以用for语句实现的循环一定可以用while语句实现 可以用while语句实现的循环一定可以用for语句实现
do...while语句与while语句的区别是关键字“while”出现的位置不同 ~D
195.关于字符常量,以下叙述正确的是( )。 空格不是一个字符常量 字符常量能包含大于一个的字符
单引号中的大写字母和小写字母代表的是相同的字符常量 所有的字符常量都可以作为整型量来处理 ~D
196.有以下函数定义: *int fun(double a,double b) *{return a*b;}
*若以下选项中所有变量都已经定义并赋值,错误的函数调用是(if(fun(x,y)){......} z=fun(fun(x,y),fun(x,y)); z=fun(fun(x,y)x,y); fun(x,y); ~C
197.执行以下语句段后,xy的值是( )。 *int *pt,xy; *xy=200; *pt=&xy; *xy=*pt+30; 200 170 260 230 ~D
198.下面各语句行中,能正确进行赋值字符串操作的是( )。 char s[5]={'a','b','c','d','e'};
)。 char *s;gets(s); char *s;s=\"ABCDEF\"; char s[5];scanf(\"%s\~B
199.以下有关宏的不正确的是( )。 宏名无类型 宏定义不做语法检查 宏名必须用大写字母表示 双引号中出现的宏名不进行替换 ~C
200.下面说法正确的是( )。 一个C程序可以有多个主函数
一个C语言的函数中只允许有一对花括号
C程序的书写格式是自由的,一个语句可以写在一行上,也可以写在多行内 在对C程序进行编译时,可以发现注释行中的拼写错误 ~C
201.若a为int型变量,则执行以下语句后,a的值为( )。 *a=5; *a+=a-=a*a; 25 -40 40 -14 ~B
202.能正确表示逻辑关系“a>=5或a<=0”的C语言表达式是( )。 a>=5 or a<=0 a>=0 || a<=5
a>=5 && a<=0 a>=5 || a<=0 ~D
203.以下能正确表示x在-5到5(含-5和5)内,值为“真”的表达式是( )。 (x>=-5)&&(x<=5) !(x>=-5||x<=5) x<5 && x>-5 (x<-5)||(x<5) ~A
204.以下关于运算符优先顺序描述中正确的是( )。 算术运算符<关系运算符<赋值运算符<逻辑运算符 赋值运算符<逻辑运算符<关系运算符<算术运算符 逻辑运算符<关系运算符<算术运算符<赋值运算符 关系运算符<算术运算符<赋值运算符<逻辑运算符 ~B
205.以下合法的C语言赋值语句是( )。 a=b=1 a=int a+b a=2,b=3 i++; ~D
206.若i、j已定义成int型,则以下程序段中内循环体的总执行次数是(*for(i=6;i>0;i--) *for(j=0;j<4;j++){...} 20 24 25 30
)。~B
207.以下选项中非法的字符常量是( )。 '\\\\' '\\0201' '\\xAA' '0' ~B
208.如果在一个函数的复合语句中定义了一个变量,则该变量( )。 在该复合语句中有效,在该复合语句外无效 在该函数内都有效
在本程序的原文件范围内均有效 此定义方法错误,其变量为非法变量 ~A
以下不正确的定义语句是( )。 double x[5]={1.0,2.0,3.0,4.0,5.0}; int y[5]={0,1,2,3,4,5}; char c1[]={'1','2','3','4','5'}; char c2[]={'a','b','c'}; ~B
209.C语言中,凡未指定存储类别的局部变量的隐含存储类别是( )。 自动(auto) 静态(static) 外部(extern) 寄存器(register) ~A
210.如果要打开一个已经存在的非空文件“FILE”并进行修改,正确的语句是(fp=fopen(\"FILE\
)。 fp=fopen(\"FILE\fp=fopen(\"FILE\fp=fopen(\"FILE\~D
211.下列程序的功能时:给r输入数据后计算半径为r的圆面积s。程序在编译时出错。 main() { int r; float s; scanf(\"%d\s=pi*r*r;
printf(\"s=%f\\n\}
出错的原因是()。 注释语句书写位置错误
存放圆半径的变量r不应该定义为整型 输出语句中格式描述符号非法
计算圆面积的赋值语句中使用了非法变量 ~D
212.以下叙述错误的是()。
在程序中凡是以“#”开始的语句行都是预处理命令行 预处理命令行的最后不能以分号表示结束 #define MAX是合法的宏定义命令行
C程序对预处理命令行的处理是在程序执行的过程中进行的 ~C
213.下列叙述中正确的是()。 预处理命令行必须位于源文件的开头 在源文件的一行上可以有多条预处理命令
宏名必须用大写字母表示 宏替换不占用程序的运行空间 ~D
214.若程序中有宏定义行:#define N 100,则下列叙述中正确的是()。 宏定义中定义了标识符N的值为整数100
在编译程序对C源程序进行预处理时用100替换标识符N 对C源程序进行编译时用100替换标识符N 在运行时用100替换标识符N ~B 程序
#include #define M 5 #define N M+M main() { int k; k=N*N*5; printf(\"%d\\n\}的输出结果是()。 100 50 55 45 ~C
215.下列叙述中正确的是()。
预处理命令行必须位于C源程序的起始位置 在C语言中,预处理命令行都以#开头
每个C程序必须在开头包含预处理命令行:#include C语言的预处理不能实现宏定义和条件编译的功能 ~B216.C语言的编译系统对宏命令的处理是()。 在系统对源程序进行编译前 和其他语句的编译同时进行 在程序连接时进行 在程序运行时进行 ~A
217.以下叙述中不正确的是()。
预处理命令行都必须以“#”号开始,结尾不加分号 在程序中凡是以“#”开始的语句行都是预处理命令行 C程序在执行过程中对预处理命令进行处理 预处理命令可以放在程序的任何位置 ~C
218.下面叙述中正确的是()。
C语言中预处理是指完成宏替换和文件包含指定的文件的调用 预处理命令只能位于C源程序文件的首部 预处理命令可以放在程序中的任何位置 预处理命令结尾需要加分号 ~C
219.以下有关宏替换的叙述不正确的是()。 使用宏定义可以嵌套 宏定义仅仅是符号替换 双引号中出现的宏名不替换
宏名必须用大写字母表示 ~D
220.在“文件包含”预处理语句的使用形式中,当#include后面的文件名用尖括号(<>)括起时,寻找被包含文件的方式是()。 仅仅搜索当前目录 仅仅搜索源程序所在目录 在标准目录下查找指定文件
先在源程序所在目录搜索,如没找到,再按系统指定的标准目录查找 ~C
221.下列对结构体类型变量td的定义中,错误的是()。 typedef struct aa struct aa { int n; { int n;
float m; float m; }AA; }td; AA td;
struct struct {int n; { int n; float m; float m; }aa; }td; struct aa td; ~C
下列叙述错误的是()。 可以通过typedef增加新的类型
可以用typedef将已存在的类型用一个新的名字来代表 用typedef定义新的类型名后,原有的类型名仍有效 用typedef可以为各种类型起别名,但不能为变量起别名 ~A
222.设有以下语句: typedef struct TT {char c;int a[4];}CIN; 则下列叙述中正确的是()。 可以用TT定义结构体变量 TT是 struct类型的变量 可以用CIN定义结构体变量 CIN是struct TT类型的变量 ~C
223.下列关于typedef的叙述错误的是()。 用typedef可以增加新的类型
typedef只是将已存在的类型用一个新的名字来代表
用typedef可以为各种类型说明一个新名,但不能用来为变量说明一个新名 用typedef为类型说明一个新名,通常可以增加程序的可读性 ~A
224.有以下结构体类型说明和变量定义中正确的是()。 typedef struct struct REC { int n;char c;}REC; { int n;char c;}; REC t1,t2; REC t1,t2;
typedef struct REC; struct
{ int n=0;char c='A';}t1,t2; { int n;char c;}REC; REC t1,t2; ~A
225.定义以下结构体数组: struct st
{ char name[15];
int age;
}a[10]={\"ZHAO\
执行语句printf(\"%d,%c\"a[2].age,*(a[3].name+2)))的输出结果为()。 15,A 16,H 16,A 17,H ~C
226.设fp为指向某二进制文件的指针,且已读到此文件末尾,则函数feof(fp)的返回值为()。 EOF 非0值 0 NULL ~B
227.读取二进制文件的函数调用形式为:fread(buffer,size,count,fp);,其中buffer代表的是()。
一个文件指针,指向待读取的文件 一个整型变量,代表待读取的数据的字节数 一个内存块的首地址,代表读入数据存放的地址 一个内存块的字节数 ~C
228.如果需要打开一个已经存在的非空文件“FILE\"并进行修改,正确的语句是()。 fp=fopen(\"FILE\fp=fopen(\"FILE\fp=fopen(\"FILE\fp=fopen(\"FILE\
229.若以\"a+\"方式打开一个已存在的文件,则以下叙述正确的是()。
文件打开时,原有文件内容不被删除,位置指针移到文件末尾,可作添加或读操作 文件打开时,原有文件内容不被删除,只能进行读操作 文件打开时,原有文件内容被删除,只能进行写操作 以上各种说法都不正确 ~A
230.使用fgets(str,n,p)函数从文件中读入一个字符串,以下叙述错误的是()。 字符串读入后会自动加入'\\0' fp是指向该文件的文件型指针
fgets函数将从文件中最多读入n-1个字符 fgets函数将从文件中最多读入n个字符 ~D 二、编程题
1.有一函数:当x<0时,y=-1;当x=0时,y=0;当x>0时,y=1。 编一程序,输入x的值,输出y的值。 #include void main() { int x,y;printf(\"请输入x:\"); scanf(\"%d\ if(x<0) y=-1; else if(x=0) y=0; else y=1;
printf(\"y=%d\
}
2.输入三个实数,将这三个数按由大到小的顺序排列,并输出这三个数。 #include void main() {int a,b,c,temp=0;printf(\"please input a,b,c: \"); scanf(\"%d %d %d\if(aprintf(\"从大到小为:%d,%d,%d\\n\ }
3.有三个整数a,b,c,由键盘输入,输出其中最大者。 void main() {
int a,b,c,max;
printf(\"输入三个数字:\\n\"); scanf(\"%d%d%d\ if(a>b&&a>c) max=a; if(b>a&&b>c) max=b; if(c>a&&c>b) max=c;
printf(\"最大值是: %d\\n\}
4.编程求圆面积、圆周长。要求圆半径由键盘输入,输出时要求有文字说明,取小数点后两位数字。 #include #define pi 3.1416 main() { float r,l,s;printf(\"请输入半径:\\n\"); scanf(\"%f\l=2*pi*r; s=pi*r*r;
printf(\"l=%7.2f\\ns=%7.2f\\n\}
5. 【有点难】 有分段函数:当x<-10时,y=|x|+5;当-10≤x≤10时,y=4x-8;当x>10时,y=sqrt(x)。
编一程序,输入x的值,输出y的值。 #include #include int main() { int x; float y;printf(\"输入x:\"); scanf(\"%d\ if(x<-10) { y=-x+5;
printf(\"x=%3d, y=|x|+5=%f\\n\" ,x,y); }
else if(x<=10)
{ y=4*x-8;
printf(\"x=%d, y=4*x-8=%f\\n\}
else { y=sqrt(x);
printf(\"x=%d, y=sqrt(x)=%f\\n\
}
return 0; }
6.编写程序,判断某一年是否是闰年。(闰年的条件是:能被整除,或者可以被400整除。) #include int main() {int year,leap; scanf(\"%d\ if (year%4==0) {
if(year%100==0)
{
if(year%400==0) leap=1; else leap=0;
}
else leap=1; } else
4整除,但是不能被100 leap=0; if (leap)
printf(\"%d is \ else
printf(\"%d is not \ printf(\"a leap year.\\n\"); return 0; }
7.输入一个华氏温度,要求输出摄氏温度,输出时要求有文字说明,取小数点后两位数字。公式为c=5/9(f-32) #include int main() { float f,c;printf(\"输入华氏温度:\\n\"); scanf(\"%f\ c=(f-32)/1.8;
printf(\"对应的摄氏温度是:%5.2f\\n\}
8.有一函数:当x<1时,y=|x|;当1<=x<10时,y=2x-1;当x>=10时,y=3x+11。
编一程序,输入x的值,输出y的值。
9.输入三个实数,将这三个数按由小到大的顺序排列,并输出这三个数。 #include void main() {int a,b,c,temp=0;printf(\"please input a,b,c: \"); scanf(\"%d %d %d\if(a>b) {temp=a;a=b;b=temp;}
if(a>c){temp=a;a=c;c=temp;} if(b>c){temp=b;b=c;c=temp;}
printf(\"从小到大为:%d,%d,%d\\n\ }
10.输入一个字符,判断它是否是小写字母,如果是,将它转换成大写字母;如果不是,不转换。然后输出最后得到的字符。 #include #include void main() { char a;scanf(\"%c\if(islower(a)) a=a-32; printf(\"%c\\n\ }
11.编程求圆柱体积,圆柱表面积。要求圆半径,圆柱高由键盘输入,输出时要求有文字说明,取小数点后两位数字。 #include int main(int argc, char *argv[]) {
float r,h,l,s,sq,vq,vz; float pi=3.1415926;
printf(\"请输入圆的半径r,圆柱高h:\"); scanf(\"%f,%f\ l=2*pi*r; s=pi*r*r;
sq=4*pi*r*r; vq=4.0/3.0*pi*r*r; vz=pi*r*r*h;
printf(\"圆周长为:l=%6.2f\\n\ printf(\"圆面积为:s=%6.2f\\n\ printf(\"圆球表面积为:sq=%6.2f\\n\ printf(\"圆球体积为:vq=%6.2f\\n\ printf(\"圆柱体积为:vz=%6.2f\\n\ system(\"PAUSE\"); return 0; }
12.有分段函数:当x<-5时,y=x+10; 当-5≤x≤5时,y=x^2;当x>5时,y=2x-10. 编一程序,输入x的值,输出y的值。 #include int main() {float y,x;
printf(\"请输入X的值\"); scanf(\"%f\if(x<-5) { }
else if(x>=-5&&x<=5) {
y=x/2; y=x+10;
printf(\"%3f,y=x+10=%f\\n\
}
} else { }
printf(\"%3f,y=x/2=%f\\n\
y=2*x-10;
printf(\"%3f,y=2*x-10=%f\\n\
return 0;
13.有三个整数a,b,c,由键盘输入,输出其中最小者。 #include int main() {int a,b,c,temp,min; printf(\"请输入三个整数:\"); scanf(\"%d,%d,%d\ temp=(aprintf(\"三个数中最小数是%d\\n\ return 0; }
14.输入一个字符,判断它是否是大写字母,如果是,将它转换成小写字母;如果不是,不转换。然后输出最后得到的字符。 #include void main() {}
char c;
printf(\"input ch:\"); c=getchar(); if( c>='A'&&c<='Z') { }
else printf(\"%c\
c=c+32; printf(\"%c\
15.输入三角形的三边长,求三角形面积。求三角形面积的公式为 area=sqrt(s(s-a)(s-b)(s-c)),其中s=(a+b+c)/2 #include #include void main() {float a,b,c,s,area; printf(\"依次输入a,b,c:\");
scanf(\"%f%f%f,\ s=(float)0.5*(a+b+c);
area = (float)sqrt(s*(s-a)*(s-b)*(s-c)); printf(\"面积为:%7.2f\}
16.编程求2!+4!+6!+8!+10!的值,并输出结果。 #include int main() {int n=1,sum=0,j,m=1,i; for(i=1;i<=5;i++){ m=1;
for(j=1;j<=2*i;j++) m=m*j; sum=sum+m; }
printf(\"sum=%d\\n\return 0; }
17.猴子吃桃问题。猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。
第二天早上又将剩下的桃子吃掉一半,又多吃一个。以后每天早上都吃了前一天剩下的一半零一个。
到第10天早上想吃时就剩一个桃子了。求第一天共摘了多少个桃子。 #include void main() {int day; static x1=1; day=10; while(day>0) {
x1=(x1+1)*2; day--; }
printf(\"桃子总数=%d\\n\}
18.输出所有的“水仙花数”,所谓“水仙花数”是指一个3位数,其各位数字立方和等于该数本身。
#include int main() {int i,j,k,n;
printf(\"水仙花数是\"); for(n=100;n<1000;n++) {
i=n/100; j=n/10-i*10;
k=n%10;
if(n==i*i*i+j*j*j+k*k*k) }
19.编程求1~100之间的所有素数,并输出结果。 #include int main(void) {
int a[100],i,j;
for (i = 0; i<100; i++) a[i]=i+1; for (i=1; i<100; i++) for (j=i+1; j<100; j++) if (a[i]&&a[j]%a[i]==0) a[j]=0;
for (i = 1; i<100; i++)
}
printf(\"\\n\"); return 0;
printf(\"%d \
if (a[i]) printf(\"%d\\ return 0; }
20.编程求1!+3!+5!+7!+9!的值,并输出结果。 #include int main() {int n=1,sum=0,j,m=1,i; for(i=1;i<=5;i++){
m=1;
for(j=1;j<=2*i-1;j++) m=m*j; sum=sum+m; }
printf(\"sum=%d\\n\return 0; }
21.用pi/4≈1-1/3+1/5-1/7+...公式求pi的近似值的绝,直到某一项对值小于10的-6次方为止。 #include #include int main() {int sign=1;
double pi=0.0,n=1.0,term=1.0; while(fabs(term)>=1e-6) {pi=pi+term; n=n+2; sign=-sign;
}
term=sign/n; }pi=pi*4;
printf(\"pi=%10.8f\\n\return 0;
22.一个球从100m高度自由落下,每次落地后又反跳回原高度的一半,再落下,再反弹。求它在第10次落地时共经过多少米? #include \"stdio.h\" #include \"stdio.h\" main() {
float sn=100.0,hn=sn/2; int n;
for(n=2;n<=10;n++) {
sn=sn+2*hn;/*第n次落地时共经过的米数*/ hn=hn/2; /*第n次反跳高度*/ }
printf(\"the total of road is %f\\n\getch(); }
23.输入两个正整数m和n,求其最大公约数和最小公倍数。 #include int main() {int p,r,n,m,temp;
printf(\"请输入两个正整数n,m:\"); scanf(\"%d%d,\
if (nprintf(\"它们的最大公约数为:%d\\n\ printf(\"它们的最小公约数为:%d\\n\ return 0; }24.利用循环,编程求1!+2!+3!+…+10!的值,并输出结果。 main() {
int i,j,n,sum=0; for(i=1;i<=10;i++) { n=1;
for(j=1;j<=i;j++) n*=j; sum+=n; }
printf(\"%d\\n\
}
25.有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13......,求出这个数列前20项之和。 #include main() { int i,x,y,a; float sum=0; x=2; y=1;for(i=1;i<20;i++) {
sum+=(float)(x)/y; // printf(\"%d/%d\\n\ a=x; x=x+y; y=a; }
printf(\"%7.5f\\n\ }
26.求Fibonacci数列前40个数。这个数列有以下特点:第1和第2个数为1,从第3个数开始,该数是其前面两个数之和。 #include#define N 4
long fibonacci(int n) {
if (0==n||1==n) return 1; else
return fibonacci(n-1)+fibonacci(n-2); }
int main(void) { int i;
printf(\"Fibonacci数列的前40项\\n\"); for (i=0; i<40;) {
printf(\"%-10ld\if(i%N==0) printf(\"\\n\"); }
printf(\"\\n\"); return 0; }
27.一个数如果恰好等于它的因子之和,这个数就称为完数。例如,6的因子为1、2、3,而6=1+2+3,因此6是完数。编程求1000以内所有完数。 #include void main() { intint i,j; sum;
for(i=2;i<1000;i++) {
sum=0; for(j=1;jif(i%j==0)
sum=sum+j;
if(sum==i)
printf(\"%d是完数\\n\
}
}
28.求S=a+aa+aaa+...+aa...a(n个a)之值。其中a是一个数字,n代表a的位数。例如:2+22+222+2222+22222(此时n为5),n由键盘输入。 #include int main() {int a,n,i=1,sn=0,tn=0; printf(\"a,n=:\"); scanf(\"%d,%d\ while(i<=n) {tn=tn+a; sn=sn+tn; a=a*10; ++i; }
printf(\"a+aa+aaa+...=%d\\n\ return 0; }
29.编程求100~200之间的所有素数,并输出结果。 #include #include int main() {int n,k,i,m=0;for(n=101;n<=200;n=n+2) {k=sqrt(n); for(i=2;i<=k;i++)
if(n%i==0)break;
}
if(i>=k+1) {printf(\"%d\m=m+1; }
if(m%10==0)printf(\"\\n\");
printf(\"\\n\"); return 0; }
30.输入一行字符,分别统计出其中英文字母、空格、数字和其他字符的个数。 #include\"stdio.h\" main()
{char c;int i=0,j=0,k=0,l=0; while((c=getchar())!='\\n')
{if(c>=65&&c<=90||c>=97&&c<=122) i++; else if(c>=48&&c<=57) j++; else if(c==32) k++; else l++;}
printf(\"i=%d,j=%d,k=%d,l=%d\\n\}
31.将一个数组中的值按逆序重新存放。例如,原来顺序为8,6,4,3,2,0。要求改为0,2,3,4,6,8。 #include #define N 5 int main() {int a[N],i,temp; printf(\"enter array a:\\n\"); for(i=0;i}for(i=0;iprintf(\"%4d\for(i=0;iprintf(\"\\nNOW,array a:\\n\"); for(i=0;i32.编写一个函数,求数列1+1/2+1/3+1/4+1/5+...1/n,利用主函数调用这个函数并输出结果。 #include main() { }float i=1,sum=0,n; printf(\"input a number n:\"); scanf(\"%f\while(i<=n) { }
printf(\"%f\\n\
sum+=1.0/i; i=i+1;
33.将一个二维数组int a[3][4]的行和列的元素互换,存到另外一个二维数组中。 #include int main() { }34.利用循环输出以下图形 ***** ****
int a[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}}; int b[4][3],i,j; printf(\"arrary a:\\n\"); for(i=0;i<=2;i++) { }
printf(\"array b:\\n\"); for(i=0;i<=3;i++) { } return 0;
for(j=0;j<=2;j++)
printf(\"%5d\
for(j=0;j<=3;j++) { }
printf(\"\\n\");
printf(\"%5d\b[j][i]=a[i][j];
printf(\"\\n\");
*** ** *
#include int main() { int i,j,m;for(i=1;i<=5;i++) { } return 0; }
35.用冒泡排序法对输入的10个数进行降序排序,并存入数组中。 #include int main() { int a[10]; int i,j,t;printf(\"input 10 numbers:\\n\"); for(i=0;i<10;i++)
scanf(\"%d\ m=i;
for(m=1;mprintf(\" \");
for(j=0;j<=5-i;j++)
printf(\"*\");
printf(\"\\n\");
printf(\"\\n\"); for(j=0;j<9;j++)
}
for(i=0;i<9-j;i++)
if(a[i]{t=a[i];a[i]=a[i+1];a[i+1]=t;} printf(\"the sorted numbers:\\n\"); for(i=0;i<10;i++)printf(\"%d\
printf(\"\\n\"); return 0;
36.有一个3乘4的矩阵,要求编程序求出其中值最大的那个元素的值,以及其所在的行号和列号。 #include int main() {int i,j,row=0,colum=0,max;
int a[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}}; max=a[0][0]; for(i=0;i<=2;i++) }
37.用冒泡排序法对输入的10个数进行升序排序,并存入数组中。 #include for(j=0;j<=3;j++)
if(a[i][j]>max) {max=a[i][j]; row=i; colum=j; }
printf(\"max=%d,row=%d,colum=%d\\n\ return 0;
int main() { int a[10]; int i,j,t;
printf(\"input 10 numbers:\\n\"); for(i=0;i<10;i++)
scanf(\"%d\
printf(\"\\n\"); for(j=0;j<9;j++) }
38.利用循环,输出以下图形 ***** ***** ***** ***** *****
#include int main(){char a[5]={'*','*','*','*','*'}; int i,j,k; char space=' ';
for(i=0;i<9-j;i++)
if(a[i]>a[i+1])
{t=a[i];a[i]=a[i+1];a[i+1]=t;} printf(\"the sorted numbers:\\n\"); for(i=0;i<10;i++)
printf(\"%d\
printf(\"\\n\"); return 0;
for (i=0;i<5;i++) {printf(\"\\n\"); printf(\" \"); for(j=1;j<=i;j++) printf(\"%c\for (k=0;k<5;k++) printf(\"%c\}
printf(\"\\n\"); return 0; }
39.输出以下杨辉三角形(要求输出10行)。 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 ...
#include #define N 10 int main() {int i,j,a[N][N]; for(i=0;ifor(i=2;ia[i][j]=a[i-1][j-1]+a[i-1][j]; for(i=0;iprintf(\"\\n\"); return 0; }40.利用循环输出以下图形 * *** ***** *******
#include int main() { int i,j,m;for (i=1;i<=4;i++) {
m=i;
for (m=1;m<=4-i;m++) printf(\" \");
for (j=0;j<2*i-1;j++) printf(\"*\"); printf(\"\\n\"); } return 0; }
41.利用循环,输出以下图形 ******* ***** *** *
#includeint main() {
int n,i,j; scanf(\"%d\ for(i=0;ifor(j=n-1-i;j>0;j--)printf(\" \");for(j=0;j<2*i+1;j++){int k=j;if(k>25)k%=26;printf(\"%c\ printf(\"\\n\"); } return 0; }
42.求一个3×3的整型矩阵对角线元素之和。 #include main() {int a[3][3],i,j,sum=0;
printf(\"请输入数组元素:(3*3)\\n\"); for(i=0;i<3;i++)
for(j=0;j<3;j++)
scanf(\"%d\
printf(\"\\n\"); printf(\"数组为:\\n\"); for(i=0;i<3;i++) {for(j=0;j<3;j++)
printf(\"%4d\
}
printf(\"\\n\"); }
printf(\"\\n\");
printf(\"对角线的和:\\n\"); for(i=0;i<3;i++) for(j=0;j<3;j++)
if(i==j||2-i==j)
printf(\"%d\\n\
sum+=a[i][j];
43.编写程序,将两个字符串连接起来,不要使用strcat函数。 int main() {
char *a=\"qwet\ char c[20]; int i,j;
for( i=0,j=0;*(a+i);i++ ,j++) c[j]=*(a+i);
for(i=0 ; *(b+i);i++,j++ ) c[j]=*(b+i); c[j]='\\0';
for( i=0 ; c[i] ;i++ )
printf(\"%c \}
44.写一个函数,求两个整数中的较大者,用主函数调用这个函数,并输出结果,两个整数由键盘输入。 #include int maxNum(int a,int b) {return(a>b?a:b); }
void main() {
int a,b,max;
printf(\"Enter two numbers!\\n\"); scanf(\"%d%d\ max=maxNum(a,b); printf(\"Max:%d\\n\}
45.编写两个函数分别求两个整数的最大公约数和最小公倍数,在主函数中调用这两个函数,并输出结果,两个整数由键盘输入。 #include int hcf(int,int); int lcd(int,int,int); void main() {int u,v,h,l;
scanf(\"%d,%d\ h=hcf(u,v);
printf(\"H.C.F=%d\\n\ l=lcd(u,v,h); printf(\"L.C.D=%d\
}
int hcf(int u,int v) { int t,r; if(v>u) { t=u; u=v; v=t;
while((r=u%v)!=0) { u=v; v=r; }
return (v); }
int lcd(int u,int v, int h) {
return (u*v/h); }
46. . 输出左边图案。 ... ..... ....... ..... ... .
#include int main(){int i,j,k; }
for(i=0;i<=3;i++) {for(j=0;j<=2-i;j++) printf(\" \");
for(k=0;k<=2*i;k++)
printf(\"*\");
printf(\"\\n\"); }
for(i=0;i<=2;i++) {for(j=0;j<=i;j++) printf(\" \"); for
(k=0;k<=4-2*i;k++) printf(\"*\");
printf(\"\\n\"); } return 0;
1. 从键盘任意输入两个实数a和b,计算a+b、a-b、a*b、a2。 2. 任意输入一个小写字母,要求用大写字母输出。 3. 用putchar和getchar将自己的姓氏输入后,再输出。 4. 用三目运算符实现:任意输入两个实数,输出其中较大的数
1.#include int main() {int a,b,c,d,e,f;
printf(\"请输入两个实数,用空格键隔开\\n\"); scanf(\"%d%d\
c=a+b; d=a-b; e=a*b; f=a*a;
printf(\"a+b=%d\\na-b=%d\\na*b=%d\\na*a=%d\\n\return 0; }
2.#include int main() {char ch,CH;
printf(\"请输入一个小写字母\\n\"); ch=getchar(); CH=ch-32;
printf(\"CH=%c\\n\return 0; }
3.#include int main() {printf(\"请输入你的姓氏\\n\"); putchar(getchar()); putchar(getchar()); printf(\"\\");
printf(\"\\n\"); return 0; }
4.#includeint main() {
float a,b,max;
printf(\"请输入两个任意实数:\\n\"); scanf(\"%f%f\(a>b)?(max=a):(max=b); printf(\"max=%f\\n\return 0; }
5编写程序:输入x的值,输出y相应的值。
x (x<1)
y= 2x-1 (1≤x<10) 3x-11 (x≥10)
6写一个程序,任意输入一个年份,判断该年是否为闰年。 7编写程序:如果输入的是A,B,C,D,E,则输出该字母;否则,输出“Continue learing C program”。(用switch实现)
一、 实验步骤(程序的源代码)
5 #include<>;
int main() { int x,y;
printf(\"输入x=\"); scanf(\"%d\ if(x<1) y=x; else
if(1<=x<10) else
y=3*-11; y=2*x-1;
printf(\"y=%d\\n,y\"); return 0 } 6.
#include; int main() {int year,leap; printf(\"enter year:\"); scanf(\"%d\ if(year%4==0) {
if(year%100==0) {
if(year%400==0) leap=1; else leap=0;
} else leap=1; } else leap=0; if(leap)
printf(\"%d is\ else
printf(\"%d is not\ printf(\"a leap year.\\n\"); return 0; }
7.#include int main() {char CH; CH=getchar(); switch(CH) {
case'A': case'B': case'C': case'D':
case'E': putchar(CH);break;
default: printf(\"Continue learning C program\\n\"); }
putchar('\\n'); return 0; }
8任意输入一个整数,求1到该数的累加和。(用while实现) 9输入两个正整数m和n,求其最大公约数和最小公倍数。 10输出九九乘法表。
实验步骤(程序的源代码) 8 #include void main() {}
9 #include int main()int n,i=1,sum=0;
printf(\"请输入一个整数:\"); scanf(\"%d\while(i<=n) { }
printf(\"sum=%d\\n\
sum=sum+i; i++;
{
int p,r,n,m,temp;
printf(\"请输入两个正整数n,m:\"); scanf(\"%d,%d,\ if (ntemp=n; n=m; m=temp; } p=n*m; while(m!=0) { r=n%m; n=m; m=r; }printf(\"它们的最大公约数为:%d\\n\ printf(\"它们的最小公倍数为:%d\\n\ return 0;
}
10 #include void main() {int i,j;
for(i=1;i<=9;i++) {
}
}
for(j=1;j<=i;j++) { }
printf(\"\\n\");
printf(\"%d*%d=%d\\
11输入一行字符,分别统计出其中的英文字母、空格、数字和其他字符的个数。
12输出所有的“水仙花数”,所谓“水仙花数”指一个3位数,其各位数字立方和等于该数本身。例如:153=13+53+33。
实验步骤(程序的源代码)
11. #include #include #include int i,a[4]; char t; int main() { for(i=0;;i++) {scanf(\"%c\if(t=='\\n')break;
else if(t>='A'&&t<='Z') a[0]++; else if(t>='a'&&t<='z')a[0]++;
else if(t==' ')a[1]++;
else if(t>='0'&&t<='9')a[2]++; else a[3]++; }
for(i=0;i<4;i++) printf(\"%d \system(\"pause\"); return 0; }
12. #include int main() {int i,a,b,c;
for(i=100;i<=999;i++) { a=i/100; b=i/10-a*10; c=i-100*a-10*b;
if(i==a*a*a+b*b*b+c*c*c) printf(\"%d\\n\} }
13任意输入10个数,要求按逆序输出。
14任意输入一个整数N,用数组求Fibonacci数列,输出到第N项。
一、 实验步骤(程序的源代码)
13. #include main() {int a[10],i,temp;
printf(\"input ten int number:\\n\");
for(i=0;i<=9;i++) scanf(\"%d\输入 for(i=0;i<=4;i++) //逆序 {
temp=a[i];
a[i]=a[9-i]; a[9-i]=temp; }
printf(\"after reverved\\n\"); //输出 for(i=0;i<=9;i++) printf(\"%-3d\}
14.#include #define MAXLength 1000 int main() { int i,n;double num[MAXLength];
printf(\"输入n(0≤n≤%d):\ scanf(\"%d\ if (n>=MAXLength||n<0) {
}
printf(\"输入的n太大或太小!\"); return 1;
for (i=0;i<=n;i++)
{
if (i==0||i==1)num[i]=1; else num[i]=num[i-1]+num[i-2];
printf(\"%-10.0f \
if(i%5==4)printf(\"\\n\");//每输出5个输出一个换行 } }
15输出杨辉三角形(输出10行),用二维数组实现。 1 1 1 1 2 1 1 3 3 1 ...
16输入一行字符,统计其中有多少个单词,单词之间用空格分隔开。 实验步骤(程序的源代码)
15.#include int main( ) { int ri,repeat; int i,j,n,a[15][15]; scanf(\"%d\ for(ri=1;ri<=repeat;ri++){ scanf(\"%d\
for(i=0;iprintf(\"\\n\"); return 0;for(j=0;jj&&j!=0)a[i][j]=a[i-1][j-1]+a[i-1][j]; else a[i][j]=1; } }
for (i=0;i16.#includeint main() {char a[30];
int i,num=0, word=0; char c; gets (a);
for(i=0;(c=a[i])!='\\0';i++) if(c==' ') {word=0; } else
if(word==0) {word=1; num++; }
printf(\"There are %dwords in this line\\n\return 0; }
三 判断题
~~~1
计算机的一切操作都是由程序控制的,离开了程序,计算机将一事无成。 ~y ~~~1
所谓程序就是一组计算机能识别和执行的指令。 ~y ~~~1
由于计算机能直接识别和接受机器指令,所以机器语言是最适合人们编程的语言。 ~n ~~~1
编译程序可以把用高级语言写的程序转换为机器指令的程序。 ~y ~~~1
一般而言,我们把用高级语言编写的程序称为目标程序。 ~n ~~~1
在生成可执行程序前,应该先编译再连结。 ~y
~~~1
高级语言之所以高级,就在于用它来编写程序可以不遵循任何形式。 ~n ~~~1
c语言程序设计自由度大,所以属于非结构化语言。 ~n ~~~1
C语言属于高级语言,不允许直接访问物理地址。 ~n ~~~1
函数是C程序的主要组成部分。 ~y ~~~3
若使用TC2.0编译器,则编译系统分配给int、char、float分别为2、1、4个字节 ~y ~~~3
下列是合法的变量名:day、sum、_pint ~y ~~~3
若定义char c;则c=\"c\"; ~n ~~~3
C语言可以使用一个符号名称代表一个常量 ~y ~~~3
如下程序段float x=3.6;int i;i=(int)x;则x=3,i=3 ~n ~~~3
在C语言中字符型数据可以和整型数据进行算术运算 ~y ~~~3
使用scanf输入数据时可以规定其精度 ~n ~~~3
C语言中的(++,--)运算符只能用于变量 ~y ~~~3
C语言中float a=b=c=1.0是正确的 ~n ~~~3
putchar(c)中c可以是转义字符 ~y ~~~4
if语句无论写在几行上,都是一个整体,属于同一个语句。 ~y ~~~4
整个if语句可以写在多行上,也可以写在一行上。 ~y ~~~4
在if语句中,有if必须有else。 ~n ~~~4
在if语句中,有else必须有if。 ~y ~~~4
else子句不能作为语句单独使用,必须与if配对使用。
~y ~~~4
C语言编译系统在表示逻辑运算结果时,以数值1代表“真”,以0代表“假”。 ~y ~~~4
算术运算符优先级高于关系运算符。 ~y ~~~4
逻辑非是逻辑运算符中优先级最高的。 ~y ~~~4
switch语句是多分支选择语句。 ~y ~~~4
在判断一个量是否为“真”时,以0代表“假”,以非0代表“真”。 ~y ~~~5
C语言中实现循环结构的3个语句是for语句、while语句和do-while语句。 ~y ~~~5
for(; ;)和while(1)构成的都是无限循环。 ~y ~~~5
C语言中实现循环结构的while语句和do-while语句是完全等价的。 ~n ~~~5
执行语句for(i=1;i++<4;);后变量i的值是4 ~n
~~~5
for语句只能用于循环次数已经确定的情况。 ~n ~~~5
现有定义int k=1;则执行语句while(++k<4);后,k的值为4 ~y。 ~~~5
程序 #include int main(){ inti=0,j=10,k=2,s=0;for(; ;){ i+=k;if(i>j){printf(\"%d\中,判断i>j共执行了6次。 ~y ~~~5
int s=36;while(s) --s;构成的是死循环。 ~n ~~~5
程序段 int =0;while(t=1){printf(\"%d\\n\在运行时,printf语句的执行次数是0次。 ~n ~~~5
程序 #include int main() {int x=23;。do {printf(\"%d\运行时的输出结果是23 ~y ~~~6在定义数组时,数组下标可以用变量表示 ~n ~~~6
在引用数组中的元素时,数组下标可以用变量表示 ~y ~~~6
int a[8];定义了一个整型数组,数组中的最后一个元素是a[8] ~n ~~~6
int a[6];定义了一个整型数组,数组中的第一个元素是a[1] ~n ~~~6
int a[2][3];定义了一个数组,该数组中共有6个元素 ~y ~~~6
假设s[10]是一个字符数组,通过scanf(\"%d\可以输入一个字符串给该数组 ~y ~~~6
int a[6]={0};定义了一个数组a,并且该数组中每个元素的初值均为0 ~y ~~~6
int a[2][3]={{1},{2},{3}};是正确的数组赋初值的方法 ~y ~~~6
比较两个字符串的大小,可以用strcpy函数 ~n ~~~6
连接两个字符串,可以用strcat函数 ~y ~~~6
测试一个字符串的长度,可以使用strlen函数 ~y ~~~7
如果被调用函数的定义出现在主调函数之前,可以不必加以声明。
~y ~~~7
C语言不能嵌套定义函数,也不可以嵌套调用函数,也就是说,在调用一个函数的过程中,不可以调用另一个函数 ~n ~~~7
主函数中定义的变量也只在主函数中有效,而不因为在主函数中定义而在整个文件或程序中有效。主函数也不能使用其他函数中定义的变量。 ~y ~~~7
不同函数中可以使用相同名字的变量,它们代表不同的对象,互不干扰。 ~y ~~~7
在一个函数内部,可以在复合语句中定义变量,这些变量只在本复合语句中有效,这种复合语句也称为“分程序”或“程序块”。 ~y ~~~7
函数内定义的变量是外部变量,而在函数之外定义的变量称为局部变量,外部变量是全局变量(也称全程变量)。 ~n ~~~7
局部变量可以为本文件中其他函数所共用。它的有效范围为从定义变量的位置开始到本源文件结束。 ~n ~~~7
从变量值存在的时间角度来分,又可以分为静态存储方式和动态存储方式。 ~y ~~~7
所谓动态存储方式是指在程序运行期间由系统分配固定的存储空间的方式。
~n ~~~7
静态存储方式则是在程序运行期间根据需要进行动态的分配存储空间的方式。 ~n ~~~7
C语言中,如果用指针变量作实参调用函数,先使指针变量有确定值,指向一个已定义的单元。 ~y ~~~7
C语言中,函数的调用只可以得到一个返回值,而运用指针作函数参数可以得到多个变化的值。 ~y ~~~7
C语言中,用输入输出语句来输入输出数据。 ~n ~~~7
使用putchar函数时,必须在之前包含头文件stdio.h。 ~y ~~~7
使用putchar函数可以向终端输出一个字符串。 ~n ~~~7
使用printf函数可以按一定位数输出。 ~y ~~~7
printf函数中,%c和%s都可以输出字符串。 ~n ~~~7
用scanf函数向已定义的变量中输入数据时,在变量名前面必须加&。 ~y ~~~7
用scanf函数向已定义的变量中输入数据时,当遇非法输入时,该数据输入结束。 ~y ~~~7
有关输入输出函数的使用,putchar(getchar( ));语句是错误(正确)的。 ~n ~~~8
所谓数组元素的指针就是指数组元素的地址。 ~y ~~~8
交换两个指针变量p1和p2的程序是 temp=*p1; *p1=*p2; *p2=temp; ~n ~~~8
printf(\"%d\与printf(\"%d\语句起到的作用相同,前者执行的效率高。 ~n ~~~8
作形参的数组名不是一个国定的地址,而是按指针变量处理。 ~y ~~~8
定义指向函数的指针的格式是 int *p(int,int);。 ~n ~~~8
程序段 int *p,a=2; p=&a; printf(\"%d\的输出结果是2 ~y。 ~~~8
C99中可定义基类型为void的指针变量,这是能指向任何类型的变量。 ~n ~~~8
将p指向字符串\"China\"的程序段是 char *p; p= \"China\"; ~y ~~~8
程序段 int a, m=4, n=6, *p1=&m, *p2=&n; a=(*p1)/(*p2)+5; 执行后a的值为5 ~y ~~~8
程序void f(int *n){ while( (*n)--); printf(“%d”,++(*n)); } main() { int a=1; f(&a); } 没有输出结果 ~n ~~~9
C语言允许用户自己建立由不同类型数据组成的组合型的数据结构,它称为结构体。 ~y ~~~9
结构体类型的名字就是结构体的名字。 ~n ~~~9
在定义结构体时,成员的类型必须指定,既可以是简单的数据类型,还可以是构造的数据类型。 ~y ~~~9
若程序中含有结构体类型,则结构体成员的名字不能与程序中的变量名相同。 ~n ~~~9
对结构体变量的成员可以像普通变量一样进行各种运算。 ~y
~~~9
结构体数组中每个数组元素都是类型相同的结构体,可以对每个数组元素整体进行输入和输出的操作。 ~n ~~~10
文件标识包含三部分内容,即文件路径、文件名主干和文件后缀。文件名主干的命名规则遵循标识符的命名规则,后缀用来表示文件的性质,由3个字母构成。 ~n ~~~10
根据数据的组织形式,数据文件分为ASC||文件(文本文件)和二进制文件(映像文件),ASC||文件比二进制文件节省存储空间。 ~n ~~~10
在缓冲文件系统中,每一个使用中的文件都在内存有一个对应的文件信息区,和该文件关联的文件指针指向它的文件信息区的同时也指向外部介质上的数据文件。 ~n ~~~10
文件型数据的指针变量是一个指向名为FILE的结构体的指针。 ~y ~~~10
以'w'的方式打开一个文件,若该文件已经存在,系统在打开该文件的同时将文件的内容清空,等待新数据的写入。 ~y