《C语言程序设计》练习一
一、单项选择题
1.下面转义字符中,表示字符串结束的是()
A.\ r
B.\ n
C.\ 0
D.\ f
2.在Turbo C2.0中,若定义unsigned int a;则变量a在内存中分配的字节数是()
A.1个
B.2个
C.4个
D.8个
3.设有int x=2,y,z;执行z=y=x--;后,变量z的值是()
A.0
B.1
C.2
D.3
4.以十六进制形式输出整数的格式说明符是()
A.%u
B.%ld
C.%x
D.%o
5.下面合法的if语句是()
A.if(a=b) c++;
B.if(a=
C.ifi(a< >b) c++;
D.if(a=>b) c++;
6.结束while(表达式)循环的条件是()
A.当表达式的值为0时
B.当表达式的值不为0时
C.当表达式的值为1时
D.当表达式的值为非1时
7.若有定义int a[3][5];则数组a在内存中占用的字节数是()
A.8
B.15
C.16
D.30
8.在C语言中,当函数返回值的类型缺省时,表示该函数返回值的类型是()
A.char
B.float
C.long
D.int
9.若有说明:int *p,m=5,n;以下正确的程序段是()
A.p=&n;
B.p=&n;
scanf(〃%d〃,n); scanf(〃%d〃,*p);
C.scanf(〃%d〃,&n);
D.p=&n;
p=n; *p=m;
10.变量的指针,其含义是指该变量的()
A.值
B.地址
C.名
D.一个标志
16.结构体是C提供的一种专门处理彼此相互有联系,数据类型()
A.不一致的多个数据的数据结构
B.不一致的单个数据的数据结构
C.一致的多个数据的数据结构
D.一致的单个数据的数据结构
11.下面列出的位运算符中,表示按位与操作的是()
A.~
B.&
C.^
D.|
12.设有说明:int x=0x03,y=3;表达式x&~y的值是()
A.0
B.1
C.2
D.3
19.设有说明:int u=1,v=3,w=2;表达式(v>>1|u<<2)&w的值是()
A.0
B.1
C.3
D.5
13.设有说明:FILE *fp;char *filename=〃paper〃;
对于fp=fopen(filename,〃rb+〃);语句,下面说法正确的是()
A.打开名为filename的文件读写
B.打开名为paper的文件读写
C.打开名为filename的文件只读
D.打开名为paper的文件只读
1
14. 设有int a=3, b=-4, c=5;表达式(a
A. –1
B. 0
C. 3
D. 7
15. 若有下列程序段,欲使a=2、b=3,对应正确的数据输入方法是()
(其中
int a, b;
scanf(″a=%d b=%d″,&a, &b);
A. 2
B. a=2 b=3
C. a=2, b=3
D. 2,3
3
16. 下面程序段的输出结果是()
main()
{ int s, p;
s=p=5;
p=++s;
p++; ++p;
printf(″%d\n″,p);
}
A. 5
B. 6
C. 7
D. 8
17. 下列if语句中,有语法错误
..的是()
A. if(x>y);
B. if(x=y) x+y;
C. if(x!=y) scanf(″%d″, &x) else scanf(″%d″,&y)
D. if(x 18. 下面程序段执行后的输出结果是() int i=-1; if(i<=0) printf(″* * * * \n″); else printf(″%%%%\n″); A. **** B.%%%% C. %%%%c D. ****c 19. 下面程序段的循环次数是() int k=2; while(k==0) printf(″%d″,k); k--; printf(″\n″); 2 A. 0次 B. 1次 C. 2次 D. 无限次 20. 下面程序段的输出结果是() a=100; while(a>120); a=a+1; printf(″%d″,a); A. 100 B. 101 C. 120 D. 121 21. 下面程序执行后,i的值是() main( ) { int a [5]={1,2,3,4,5},i=2 printf(″%d″,a[i++]); } A. 1 B. 2 C. 3 D. 4 22. 下面程序的输出结果是() main( ) { int i, x[3][3]={9,8,7,6,5,4,3,2,1}; for(i=0;i<4;i+=2) printf(″%d″, x[i][1]); } A. 5 1 B. 5 2 C. 8 2 D. 9 3 23. 在C程序中,若用基本数据类型所定义的变量调用函数,正确的说法是() A. 由系统自动指定对应实参和形参是否共用存储单元 B. 对应实参和形参各占一个独立的存储单元 C. 对应实参和形参共用一个存储单元 D. 可以由用户指定对应实参和形参是否共用存储单元 24. 下面叙述中不.正确的是() A. 不同函数中可以使用相同名字的变量 B. 形式参数是局部变量 C. 在一个函数内部定义的变量只能在本函数范围内有效 D. 在一个函数内部的复合语句中定义的变量在本函数范围内有效 25. 设有语句int a[4][10],*p=*a;则下面表达式中属于地址表达式的是() A. a[1][2] B. a[1] C. *(p+1*10+2) D. *(a[1]+2) 3 26. 下面定义不正确 ...的是() A. struct star B. struct star { { int id int id; char *name; char *name; } star1={1001, ″Moon″}; }; star1={1001, ″Moon″}; C. struct D. struct star { { int id; int id; char *name; char *name; } star1={123, ″Sun″}; } star1; 27. 下面各个位运算符的优先级从左到右依次升高的是() A. | ^ & >> B. ^ >> & ~ C. << | ^ ~ D. ~ | & >> 28. 设有说明:int u=1, v=14;表达式u+v>>2的值是() A. 0 B. 3 C. 5 D. 7 29. 如果将文件指针fp指向文件末尾,正确的语句是() A. feof(fp); B. rewind(fp); C. fseek(fp,0L,0); D. fseek(fp,0L,2); 30. 下面程序段中,不能 ..完成的功能是() FILE *fp; char ch =′v′; fp=fopen(″boy″, ″rb+″); fputc(ch,fp); A. 建立文件指针fp与文件boy的联系 B. 从boy文件中读取一个字符 C. 向boy文件中写一个字符 D. 打开名为boy的二进制文件 31.设有int a =3, b=-4, c=0;表达式((a>b)?a:b)&&c<0的值是() A.-4 B.0 C.1 D.3 32.若有下列程序段,欲使a=2、b=3,对应正确的数据输入方法是() (其中 int a, b; scanf(″a=%d, b=%d″,&a,&b); 4 A.2 B.a=2 b=3 C.a=2, b=3 D.2,3 33.下面程序段的输出结果是() main( ) { int s, p; s=p=5; p=--s; p++;++p; printf(″%d\n″,p); } A.5 B.6 C.7 D.8 34.关于if语句下面叙述正确的是() A.只有当if语句中表达式的值等于1时,才执行if的内嵌语句 B.只有当if语句中表达式的值为假时,才执行if的内嵌语句 C.只有当if语句中表达式的值等于0时,才执行if的内嵌语句 D.只要if语句中表达式的值非0时,就执行if的内嵌语句 35.若执行下面程序时,从键盘输入数据3和4,则程序的输出结果是()main( ) { int a,b,s; scanf(″%d″, &a,&b); s=a; if(a s=s*s; printf(″%d″,s); } A.9 B.12 C.16 D.25 36.若int x=0; 则while(x==0); 的循环次数是() A.0 B.1 C.2 D.无限次 37.下面程序段的输出结果是() for (i=1; i<3;i++) {for (j=1;j<3;j++) printf(″%d ″, i+j); 5 printf(″\n″);} A.2 3 3 4 B.2 3 4 C.2 3 D.2 3 4 3 4 38.下面程序的输出结果是() mian ( ) { int a[5]={2,4,6,8,10},i; i=2; printf(″%d″,a[i++]); } A.2 B.4 C.6 D.8 39.下面程序的输出结果是() main( ) { int a[3][4]={1,3,5,7,9,11,13,15,17,19,21,23}; int i,j,k=0; for(i=0;i<3;i++) k=k+a[i][0]; printf(″%d\n″,k); } A.27 B.33 C.39 D.45 40.以下正确的函数定义形式是() A. double fun(int x, int y) B. double fun(int x; int y) C. double fun(int x, int y); D. double fun(int x, y); 41.关于变量以下不正确 ...的说法是() A.在不同函数中可以使用相同名字的变量 B.形式参数是全局变量 C.在函数内定义的变量只在本函数范围内有效 D.在函数内的复合语句中定义的变量是局部变量 42.设有语句int a[4][10],*p=*a;则下列表达式中不是 ..地址表达式的是() A.&a[1][2] B.a[3] C.*(p+1*10+2) D.p+1*10+2 43.下面关于结构体类型变量定义不正确 ...的是() A. struct score B. struct { { 6 int math; int math; int Chinese; int Chinese; }Li, Wang; }Li, Wang; C. struct score D. struct score { { int math; int math; int Chinese; int Chinese; }; };Li, Wang; struct score Li, Wang; 44.下面各个运算符的优先级从左到右依次降低的是() A.& >> | ^ B.~ & >>| C.>> & ^ | D.~ >> & ^ 45.设有说明:int u=1, v=2;表达式:u+v<<2的值是() A.-1 B.1 C.9 D.12 46.下面程序段中,不.能完成的功能是() FILE *fp; char ch; fp=fopen(″file1″, ″rb+″); ch=fgetc(fp); A.建立文件指针fp与文件file1的联系 B.从file1文件中读一个字符 C.向file1文件中写一个字符 D.打开名为file1的二进制文件 47.在格式:fread(stu,size,n,fp);中,下面说法不正确 ...的是() A.stu是内存中存放数据的首地址 B.n表示读n次 C.size是一个数据块的字节数 D.fp表示文件指针 48.字符串常数“CHINA”在内存中存储时占的字节数是() A.5个B.6个C.7个D.8个 49.如果a=1,b=2,c=3,d=4,则表达式a>b?a:c 50.输出字符串的格式说明符是() 7 8 A .%c B .%s C .%u D .%g 51.设有说明int x=0,y=0; 则执行if(x++)y=1+x; else y=2+x ; 后,变量y 的值是( ) A .0 B .1 C .2 D .3 52.以下程序段所表示的数学函数关系是( ) y=-1 if(x!=0) if(x>0) y=1;else y=0; A .??? ??>=<-=)0(1)0(0)0(1x x x y B .??? ??>=-<=)0(0)0(1)0(1x x x y C .?? ? ??>=-<=)0(1)0(1)0(0x x x y D .?? ? ??>=<-=)0(0)0(1)0(1x x x y 53.执行下面程序段后,输出字符A 的个数是( ) for(i=0;i<=5;i+=2) printf(″A ″); A .0个 B .3个 C .5个 D .6个 54.若有定义char a[ ]= ″computer ″;则存储字符m 的数组元素是( ) A .a[1] B .a[2] C .a[3] D .a[4] 55.若有定义int a [4]={1,2,3,4};则a[a[3]-a[1]*a[1]]的值是( ) A .1 B .2 C .3 D .4 12.凡是函数中未指定存储类别的局部变量,其隐含的存储类别为( ) A .自动(auto ) B .静态(static ) C .外部(extern) D .寄存器(register ) 56.如果一个C 程序仅由一个源文件组成,则在一个源文件中定义的全局变量的作用域为( ) A .源文件的全部范围 B .本程序的全部范围 C .本函数的全部范围 D .从定义该变量的位置开始至本文件末尾 57.下列定义中,不是..指针数组定义的是( ) A .int*p[5]; B .float*q[4]; C .int(*r)[6]; D .char*w[7]; 58.若有语句int*point,a=4;和point=&a;下面代表地址的一组选项是( ) A.a,point,*&a B.&*a,&a,*point C.*&point,*point,&a D.&a,&*point,point 59.下列程序的运行结果是() #difine N 9 fun (char s[ ]) { char*p=s+4,*q=s; int i; for(i=0;i<4;i+ +,p+ +,q + +) { s[i]=*p; s[i+4]=*q } } main( ) { char ss[N]= ″ABCDEFGH″; fun(ss) printf(″%s\n″,ss); } A.EFGHABCD B.EFGHEFGH C.ABCDEFGH D.ABCDABCD 60.设有结构体的定义如下:() struct cjd {long bh;int*q;char xm[9];}; 则sizeof(struct cjd)的值是 A.14 B.15 C.16 D.17 61.设有说明:int x=0x15,y=0x0f;则x&y的结果是() A.0x5 B.0x15 C.0xf0 D.0xf5 62.如果在程序中要使用系统提供的函数strlen,则需要书写的编译预处理命令是()A.#include C.#incLude 63.由FILE*fp;fp=fopen(″a:\\abc.txt″,″r+″);可以推知fopen 函数的原型是() A.char *fopen(char,char);B.FILE*fopen(char*,char*); 9 C.int fopen (char*,char*); D.FILF fopen(char* ,char*); 64.整数-2在机器内存中的表示是()A.1000000000000010 B.1111111111111110 C.11111111111111101 D.1111111111111111 65.下列运算符中优先级最低的是() A.> B.! C.% D.= = 66.设有int a=3,b=-4,c=5;表达式+ +a-c+b+ +的值是()A.-6 B.-5 C.-4 D.-3 67.以十进制无符号形式输出整数的格式说明符是() A.%u B.%x C.%o D.%d 69.下列程序段的输出结果是() void main(void) { iny y=1,x=5; if(x<0)y=-1; if(x>=0)y=0; printf("%d\n",y); } A.-1 B.0 C.1 D.5 69.执行如下程序段后,x的值是() int x=1,y=-1; if(y<0)x-=y; else x+=y; A.-1 B.0 C.1 D.2 70.执行while(表达式)循环的条件是() A.当表达式的值为0时B.仅当表达式的值为1时C.当表达式的值非0时D.当表达式的值不为1时71.下列程序段输出的结果是() for(i=1;i<3;i+ +) for(j=1;j<3;j+ +) 10 printf("%d",i+j); A.2 3 3 4 B.2 3 4 C.2 3 D.2 3 4 3 4 72.若有定义int s[4]={1,2,3,4};则a[a[2]-3*a[0]+1]的值是() A.1 B.2 C.3 D.4 73.下列关于C语言程序说法正确的是() A.C语言程序总是从有定义的函数起顺序执行 B.在C语言程序中,被调用函数必须在main函数中定义 C.C语言程序中的main函数必须放在程序的开始部分 D.C语言程序总是从main函数起开始执行 74.若有int a[ ]={1,2,3,4,5,6,7,8,9,10},且0≤i<10,则对数组元素地址正确表示的是 ()A.&a+1 B.&a+ + C.&a D.&a[i] 75.下列关于结构体类型定义正确的是() A.struct ABC B.struct ABC { { int a int a; char b char b; char*p char * p; } } C.struct ABC D.struct ABC { { int a; int a, char b; char b, char * p; char *p, }; }; 76.下列位运算符中,表示按位异或操作的是() A.~ B.│C.^ D.& 77.下列各个位运算符的优先级从左到右依次升高的是() A.>>│& ~ B.│>> & ~ C.│& >> ~ D.~│& >> 11 78.设有说明:int u=1,v=3;则表达式u<<= v的值是() A.0 B.1 C.3 D.8 79.如果文件存储的是数据在内存中存放的字节形式,则该文件是()A.ASCII文件B.文本文件C.二进制文件D.设备文件 80.下列转义字符中,表示回车的是() A.\0 B.\n C.\r D.\f 81.若定义double d;则d在内存中分配的字节数是() A.1个B.2个C.4个D.8个 82.下列表达式中运算结果为3的表达式是() A.(-7)%4 B.7/4+2 C.7/4*4-4 D.8/3+8/3 83.设有int a=3,b=-4,c=5;表达式a++-c+b++的值是() A.-6 B.-5 C.-4 D.-3 84.在printf语句中,格式说明符u表示() A.以十进制带符号形式输出整数 B.以十六进制带符号形式输出整数 C.以十进制无符号形式输出整数 D.以十六进制无符号形式输出整数 85.若有int a=3,b=4,c=5,d=6,x=4;执行下列程序段后x的值是()if(a { if(c= =d) x=c; } else x=d++ A.4 B.5 C.6 D.7 12 86.关于switch中的表达式,正确的说法是() A.它必须是算术表达式B.它必须是关系表达式 C.它必须是逻辑表达式D.它可以是任意类型的表达式 87.对do语句while(表达式);结构的循环,下列说法正确的是() A.当表达式的值为非零时不执行循环体 B.循环体至少被执行一次 C.当表达式的值为零时循环体一次也不执行 D.循环体仅被执行一次 88.只能在循环语句中用于结束本轮循环的语句是() A.break; B.continue; C.goto D.if 89.若有定义int a[3][5];则数组a在内存中分配的字节数是() A.8 B.15 C.24 D.30 90.已知strl和str2是字符串数组,下列哪一个函数能正确的完成字符串的输入?()A.gets(strl) B.gets(strl,str2) C.getchar(strl) D.getchar(strl,str2) 91.下列关于函数的描述中正确的是() A.C程序中有调用关系的所有模块必须放在同一个源文件中 B.函数必须有返回值,否则不能使用函数 C.C程序必须由一个或一个以上函数构成 D.C函数既可以嵌套定义又可以嵌套调用 92.设有下列程序,则() int d=10; main() { int a=3;printf(“%d,%d\n”,a,d); } A.a是全局变量,d是全局变量B.a是局部变量,d是全局变量 C.a是全局变量,d是局部变量D.a是局部变量,d是局部变量 13 93.若有说明:int*p1,*p2,m=5,n;以下进行赋值的语句中合理的是()A.p1=m; B.&p2=n; C.pl=&m;p2=p1; D.*p1=&m; 94.下列为指针数组定义的是() A.float(*)[6]; B.float p[6]; C.float(*)(); D.float *p[6]; 95.设有说明:FILE*fp;对于fp=fopen(″c:\\abc.dat″,″rb″);语句,下列说法中不正确的是() A.fp将指向abc.dat文件 B.以只读方式打开二进制文件 C.打开文件的文件名是abc.dat D.以读写方式打开ASCII码文件 96.ASCII码文件的结束可以用符号常量EOF表示。EOF的值是() A.0 B.1 C.-1 D.不能确定的值 97.下列是合法C语言常量的是() A. e B. 7E4.0 C. E4 D. -9.13E-30 98.设有int a=3,b=-4,c=5;表达式(a A. 0 B. 1 C. 3 D. 4 99.以指数形式输出实型数的格式说明符是() A. %u B. %x C. %f D. %e 100.下列程序的输出结果是() main( ) { int x=5,y; if(x<0)y=-1; if(x==0)y=0; y=1; printf(″%d″,y); } A. -5 B. -1 C. 0 D. 1 101.下列程序段的输出结果是() i=1; while(i<3) {j=1; while(j<=i) { printf(″%d″,i+j); 14 j++; } i++; printf(″\n″); } A. 2 3 3 4 B. 2 3 4 C. 2 3 D.2 3 4 3 4 102.已知str1和str2是字符数组名,下面函数中能正确地完成字符串输出的是()A. puts (str1,str2) B. puts (str2) C. putchar (strl) D. putchar (str1,str2) 103.下列关于函数的说明中不正确 ...的是() A. 函数名后面可以不要一对圆括号 B. 函数参数类型必须作说明 C. 函数形参个数可以是一个、多个或没有 D. 空函数被调用时不做任何工作 104.若有定义:int a[5];则a数组中首元素的地址可以表示为() A. &a B. a+1 C. a D. &a[1] 105.设有char *s=″\ta\017bc″;则指针变量s指向的字符串在内存中所占的字节数是() A. 5 B. 6 C. 7 D. 9 106.下列各个位运算符的优先级从左到右依次降低的是() A. | & ? > > B. ? & > > | C. ~> > ? | D. ~> > | ? 107.设有说明:int u=1,v=3,w=5;表达式:v &~~u|w的值是() A. 3 B. 5 C. 6 D. 8 108.设有下列程序:() #include″stdio.h″ main( ) { unsigned x=8,y=2; printf(″%d\n″,y|~(x&y)); } 该程序的运行结果是 A. -1 B. 0xff C.127 D. 65535 109.若有定义∶# define P(x) x *x *x+1和说明语句: int a=2;则表达式P(2)的值是() A. 6 B. 8 C. 9 D. 10 110.在语句fgets(str,n,p);中,下列说法不正确 ...的是() A. str是字符指针 B. 一次可以读n个字符 C. str是字符数组名 D. 一次可以读n-1个字符 15 111.在Turbo C 2.0中,若定义char ch;则变量ch在内存中分配的字节数是()A.1个 B.2个 C.4个 D.8个 6 112.下面程序段的输出结果是() main() {int a=2,b=5; printf(″a=%d%%,b=%d%%″,a,b);} A.a=2,b=5 B.a=2%,b=5% C.a=%2,b=%5 D.a=%d,b=%d 113.设有条件表达式(exp)? a++:b--,则下列表达式中能够与该表达式完全等价的表达式是() A.(exp!=0)? a++∶b-- B.(exp==0)? a++∶b-- C.(exp==1)? a++∶b-- D.(exp!=1)? a++:b-- 114.对于for(表达式l;表达式2;表达式3)语句;控制循环结束的表达式是()A.表达式1 B.表达式2 C.表达式3 D.表达式l和表达式3 115.设有下列程序:() void main(void) { int x[4]={1,3,5,7},i; i=0: printf("%d",x[i++]); } 其输出结果是 A.1 B.3 C.5 D.7 116.下列关于函数的说法中,不正确 ...的是() A.函数名后面一定要一对圆括号 B.空函数被调用时不做任何工作 C.函数形参个数可以是一个、多个或没有 D.函数参数类型可不作说明 117.指向与文件参数有关的结构体类型的指针变量称为() A.函数指针 B.整型指针 C.字符型指针 D.文件指针 118.设有int x=2,y,z;执行z=y=x——;后变量y的值是() A.0 B.1 C.2 D.3 119.两次运行下面的程序,如果从键盘上分别输入6和4,则输出的结果是()void main(void) { int x; scanf("%d",&x); if(x + + >5)printf("%d",x); else printf("%d\n",x——); } A.7和5 B.6和3 C.7和4 D.6和4 120.在下列选项中,没有构成死循环的程序段是() 16 A.int i=100; B.for(;;); while(1) { i=i%100+1; if(i>100)break;} C.int k=1000; D.int s=36; do{++k;}while(k>10000);while(s);一一s; 121.定义如下变量和数组 int k; int x[3][3]={9,8,7,6,5,4,3,2,l}; 则执行下面语句 for(k=0;k<3;k++) if(k%2)printf("%5d",x[k][k]); 后输出结果是() A.3 B.5 C.7 D.9 122.设有下列程序: ff() {int c=9; static int a=1,b=4; if(b==4){a+=c;b++;} else {a+=c;b——;} printf("a=%d,b=%d\n",a,b);} main() {ff();ff();} 则该程序执行后,显示的结果为() A.a=10,b=5 B.a=10,b=4 a=19,b=5 a=l9,b=5 C.a=10,b=4 D.a=10,b=5 a=19,b=4 a=19,b=4 123.下面能正确进行字符串赋值操作的是() A.char s[5]={"ABCDE"}; B.char s[5]={′A′,′B′,′C′,′D′,′E′}; C.char *s;s="ABCDE"; D.char *s;scanf("%s",s); 124.下面程序段的运行结果是() chars *s="abcde"; s+=2 printf("%d",s); A.cde B.字符′c′ C.字符′c′的地址 D.无确定的输出结果125.下列为指针数组定义的是() A.float(*)[6]; B.float p[6]; C.float(*)(); D.float *p[6]; 126.设有下面程序: # include"stdio.h" 17 void main(void) { unsigned x=1,y=3,z=5; printf("%d\n",z^x&y); } 该程序的运行结果是() A.0 B.3 C.4 D.5 127.设有说明: int u=l,v=3,w=5; 表达式:u<<=(v|w)的值是() A.1 B.5 C.13 D.128 128.结构体是C提供的一种专门处理彼此相互有联系,数据类型() A.不一致的多个数据的数据结构 B.不一致的单个数据的数据结构 C.一致的多个数据的数据结构 D.一致的单个数据的数据结构 129.设有说明:int u=1,v=3,w=2;表达式(v>>1|u<<2)&w的值是() A.0 B.1 C.3 D.5 130.凡是函数中未指定存储类别的局部变量,其隐含的存储类别为() A.自动(auto)B.静态(static)C.外部(extern) D.寄存器(register)《C语言程序设计》练习一(参考答案) 18 19 C语言程序设计 一、选择题(共40分,每小题2分) 1、以下叙述不正确的是(D) A、一个C源程序可由一个或多个函数组成 B、一个C源程序必须包含一个main函数 C、C程序的基本组成单位是函数 D、在C程序中,注释说明只能位于一条语句的后面 2、下列四个选项中,是不合法的用户标识符的选项是(B) A、abc B、12AC C、sun D、A 3、设有语句inta=4;则执行了语句a+=a-=a*a后,变量a的值是(A) A、-24 B、0 C、4 D、16 4、下列运算符中优先级最高的是(B) A、< B、+ C、&& D、== 5、在C语言中,运算对象必须是整型数的运算符是(A) A、% B、/ C、%和/ D、+ 6、以下关于运算符的优先顺序的描述正确的是(C) A、关系运算符<算术运算符<赋值运算符<逻辑与运算符 B、逻辑与运算符<关系运算符<算术运算符<赋值运算符 C、赋值运算符<逻辑与运算符<关系运算符<算术运算符 D、算术运算符<关系运算符<赋值运算符<逻辑与运算符 7、在C语言中,如果下面的变量都是int类型,则输出的结果是(C) sum=pad=5;pAd=sum++,pAd++,++pAd; printf(“%d\n”,pad); A、7 B、6 C、5 D、4 8、x、y、z被定义为int型变量,若从键盘给x、y、z输入数据,正确的输入语句是(B) A、INPUTx、y、z; B、scanf(“%d%d%d”,&x,&y,&z); C、scanf(“%d%d%d”,x,y,z); D、read(“%d%d%d”,&x,&y,&z); 9、假定从键盘输入23456<回车>,下面程序的输出结果是:(C)voidmain() {intm,n; scanf(“%2d%3d”,&m,&n); printf(“m=%dn=%d\n”,m,n); } A、m=23n=45 B、m=234n=56 C、m=23n=456 D、语句有错误 10、若运行时,给变量x输入12,则以下程序的运行结果是(A)main() {intx,y; scanf(“%d”,&x); y=x>12?x+10:x-12; printf(“%d\n”,y); } A、0B、22C、12D、10 11、C语言中while和do-while循环的主要区别(A) A、do-while的循环体至少执行一次 B、while的循环控制条件比do-while的循环控制条件严格 C、do-while允许从外部转到循环体内 D、do-while的循环体不能是复合语句 12、以下对二维数组的正确说明的语句是(C) A、inta[3][] B、floata(3,4) C、doublea[3][4] D、floata(3)(4) 13、以下程序的输出结果是(C) main() 一.填空 1. 每个C程序都必须有且仅有一个________ 函数。 2. C语言程序开发到执行通常要经过6个阶段即编辑、预处理、________、链接、加载和执行。 3. 软件是程序,以及______、使用和维护所需要的所有文档。 4. 国标中规定:“计算机程序是按照具体要求产生的适合于计算机处理的_________”。 5. 程序设计语言按照书写形式,以及思维方式的不同一般分为低级语言和________两大类。 6. C语言是由________组成的。 7. C语言的函数可分为主函数main、标准库函数和_________。 8. 一个函数是由两部分组成的,即:________和函数体。 9. 编译是将C语言所编写的源程序________成机器代码,也称为建立目标代码程序的过程。 10. 程序是由某种程序设计语言编制出来,体现了编程者的控制思想和对计算机执行操作 的要求。不同的任务功能,就会需求不同的软件程序,如:控制计算机本身软硬件协调工作,并使其设备充分发挥效力,方便用户使用的系统软件程序,称为操作系统;而为办公自动化(OA)、管理信息系统(MIS)、人工智能、电子商务、网络互联等等应用而开发的软件程序,统称为_________。 11. 机器语言是以__________形式表示的机器基本指令的集合,是计算机系统唯一不需要翻译可以直接识别和执行的程序设计语言。 12. 与机器语言相比,使用汇编语言来编写程序可以用_______来表示指令的操作码和操作对 象,也可以用标号和符号来代替地址、常量和变量。 13. 在编译程序之前,凡以____开头的代码行都先由预处理程序预处理。 14. C程序的执行均是由执行_________开始。 15. 函数体即为包含在{}内的部分。它分为________和为完成功能任务由若干个C 语句 组成的执行部分。 16. C语言程序中一条简单语句是以________字符作为结束符的。 17. C语言是结构化、________的程序设计语言。 18. 由于计算机硬件不能直接识别高级语言中的语句,因此,必须经过“_______程序”,将用高级语言编写的程序翻译成计算机硬件所能识别的机器语言程序方可执行。 19. 用高级语言编写的程序需翻译成计算机硬件所能识别的机器语言程序方可执行。所以 说,用高级语言进行程序设计,其编程效率高,方便易用,但_______没有低级语言高。 20. 第一章基础知识 一.填空 1. 每个C程序都必须有且仅有一个________ 函数。 2. C语言程序开发到执行通常要经过6个阶段即编辑、预处理、________、链接、加载和执行。 3. 软件是程序,以及______、使用和维护所需要的所有文档。 4. 国标中规定:“计算机程序是按照具体要求产生的适合于计算机处理的_________”。 5. 程序设计语言按照书写形式,以及思维方式的不同一般分为低级语言和________两大类。 6. C语言是由________组成的。 7. C语言的函数可分为主函数main、标准库函数和_________。 8. 一个函数是由两部分组成的,即:________和函数体。 9. 编译是将C语言所编写的源程序________成机器代码,也称为建立目标代码程序的过程。 程序是由某种程序设计语言编制出来,体现了编程者的控制思想和对计算机执行操作 的要求。不同的任务功能,就会需求不同的软件程序,如:控制计算机本身软硬件协调工作,并使其设备充分发挥效力,方便用户使用的系统软件程序,称为操作系统;而为办公自动化(OA)、管理信息系统(MIS)、人工智能、电子商务、网络互联等等应用而开发的软件程序,统称为_________。 11. 机器语言是以__________形式表示的机器基本指令的集合,是计算机系统唯一不需要翻译可以直接识别和执行的程序设计语言。 12. 与机器语言相比,使用汇编语言来编写程序可以用_______来表示指令的操作码和操作对 象,也可以用标号和符号来代替地址、常量和变量。 13. 在编译程序之前,凡以____开头的代码行都先由预处理程序预处理。 14. C程序的执行均是由执行_________开始。 15. 函数体即为包含在{}内的部分。它分为________和为完成功能任务由若干个C 语句 组成的执行部分。 16. C语言程序中一条简单语句是以________字符作为结束符的。 17. C语言是结构化、________的程序设计语言。 C语言程序设计试卷及 答案 IMB standardization office【IMB 5AB- IMBK 08- IMB 2C】 C语言程序设计 一、单项选择题(共15小题,每题4分,共60分) 1、下列有关C语言的叙述中错误的是()。 A)C语句必须以分号结束B)任何一个C程序中有且只有一个主函数 C)复合语句在语法上可被看作一条语句D)C程序中对数据的任何操作都可由运算符实现 2、以下不能定义为用户标识符的是()。 A)MAINB)_HJC)2ongD)LINE1 3、以下能正确定义一维数组的是()。 A)inta[5]={0,1,2,3,4,5};B)inta[5]=”012345”; C)chara[]=”012345”;D)chara[5]={0,1,2,3,4,5}; 4、以下关于main()函数的说法,正确的是。 A)main()必须是程序的第一行B)main()可以有参数 C)一个程序可以有多个main()D)main()可以被用户自定义的函数调用 5、设charstr1[10]=“ABCDE”,str2[10]=“xyz”; 则执行语句printf(“%d”,strlen(strcpy(str1,str2)));后的输出结果是()。 A)9B)8C)5D)3 6、若用数组名作为函数调用的实参,则传递给形参的是()。 A)数组的首地址B)数组第一个元素的值C)数组中全部元素的值D)数组元素的个数 7、在C程序中,若未在函数定义时说明函数类型,则函数默认的类型为()。 A)void?B)double?C)int?D)char 8、下面不能正确进行字符串赋值操作的语句是()。 指针 一单项选择题(每题2分,共40分) 1 以下叙述中错误的是_B__。 A 在程序中凡是以“#”开始的语句行都是预处理命令行 B 预处理命令行的最后不能以分号表示结束 C #define MAX是合法的宏定义命令行 D C程序对预处理命令行的处理是在程序执行的过程中进行的 2 若程序中有宏定义行:#define N 100 ,则以下叙述中正确的是__B_。 A 宏定义行中定义了标识符N的值为整数100 B 在编译程序对C源程序进行预处理时用100替换标识符N C 对C源程序进行编译时用100替换标识符N D 在运行时用100替换标识符 3 若有如下宏定义: #define N 2 #define y(n) ((N+1)*n) 则执行下列语句:z=4*(N+y(5));后的结果是_B__。 A 语句有错误 B z值为68 C z值为60 D z值为180 4 以下程序运行后的输出结果是_A__。 #define F(X,Y) (X)*(Y) main() { int a=3,b=4; printf("%d\n",F(a++,b++)); } A 12 B 15 C 16 D 20 5 以下程序运行后的输出结果是_C__。 #define f(x) (x*x) main() { int i1,i2; i1=f(8)/f(4); i2=f(4+4)/f(2+2); printf("%d,%d\n",i1,i2); } A 64,28 B 4,4 C 4,3 D 64,64 6 若已定义a为int型变量,则__D_是对指针变量p的正确说明和初始化。 A int p=&a; B int *p=a; C int *p=*a; D int *p=&a; 7 已知下列说明语句: static int a[]={2,4,6,8} static int *p[]={a,a+1,a+2,a+3}; int **q; q=p; 则表达式**(q+2)的值是_A__。 A 6 B 2 C 4 D 8 8 下面是一个初始化指针的语句:int *px=&a;,其中指针变量的名字应该__C_。 A *px B a C px D &a 9 若指针px为空指针,则_B__。。 C语言程序设计 期末考试试题及其答案 一、单项选择题(本大题共20题,每题2 分,共40分) 1、以下不是C语言的特点的是( ) A、C语言简洁、紧凑 B、能够编制出功能复杂的程序 C、C语言可以直接对硬件进行操作 D、C语言移植性好 2、以下不正确的C语言标识符是( ) A、ABC B、abc C、a_bc D、ab.c 3、一个C语言程序是由( ) A、一个主程序和若干子程序组成 B、函数组成 C、若干过程组成 D、若干子程序组成 4、一个算法应该具有“确定性”等5个特性,对另外4个特性的描述中错误的是( ) A、有零个或多个输入 B、有零个或多个输出 C、有穷性 D、可行性 5、设变量a是整型,f是实型,i是双精度型,则表达式10+‘a’+i*f值的数据类型为( ) A、int B、float C、double D、不确定 6、在C语言中,char型数据在内存中的存储形式是( ) A、补码 B、反码 C、源码 D、ASCII码 7、有如下程序,输入数据:12345M678<cR>后( #include 程序填空题 导读:在程序填空题中,已经给出了程序的主干,读者首先要理解程序的思路,再选择正确的内容填入空白处,使程序完成既定的功能。这类习题的设计就是要引导读者逐步掌握编程的方法。本节习题的难度适中,可能有些典型的程序在课堂上已经有所接触,读者一定要独立完成它,这样就可以逐步提高自己的编程能力。在程序设计语言学习的中期,读者对程序设计已经有了初步的了解,而自己编写程序又不知从何处入手,此时解答此类题目可以避免盲目性,从而提高学习的效率。 【】下面程序的功能是不用第三个变量,实现两个数的对调操作。#include <> main() { int a,b; scanf("%d%d",&a,&b); printf("a=%d,b=%d\n",a,b); a= ①; b= ②; a= ③; printf("a=%d,b=%d\n",a,b); } 【】下面程序的功能是根据近似公式:π2/6≈ 1/12+1/22+1/32+ …… +1/n2,求π值。 #include <> double pi(long n) { double s=; long i; for(i=1;i<=n;i++) s=s+ ①; return( ②); } 【】下面的程序的功能是求一维数组中的最小元素。 findmin(int *s,int t,int *k) { int p; for(p=0,*k=p;p 绝密★启用前学院 学年第二学期期末考试 级专业()《 C语言程序设计》试卷D 一、单项选择题(本大题共15小题,每小题2分,共30分) 1、以下正确的C语言自定义标识符是() A._la B.2a_ C.do D.a.12 2、在C语言中,错误 ..的常数表示是() A.0L B.-0x6aL C.′6′D.1.234E3.5 3、设int a,x=2;执行语句a=x>0?3*x:(x=10);后,变量x的值是() A.1 B.2 C.6 D.10 4、设有以下程序段: int x=2,y=2,z=0,a; a=++x||++y&&z++; printf(″%d,%d,%d\n″,x,y,z); 执行后输出的结果是() A.2,2,0 B.3,3,1 C.3,2,0 D.3,2,1 5、逗号表达式a=2*6,a*3,a+5的值是() A.12 B.17 C.36 D.41 6、设int a[2][3]={{1},{2,3}};,则元素a[1][0]的值是() A.0 B.1 C.2 D.3 7、C语言中,错误 ..的int类型的常数是() A.1E5 B.0 C.037 D.0xaf 8、在C语言中,′a′和″a″存储所占用的字节数分别是() A.1,1 B.1,2 C.2,1 D.2,2 9、设int x;,则以下语句中错误 ..的输入是() A.scanf (″%d″,x); B.scanf (″%d″,&x); C.scanf (″%o″,&x); D.scanf (″%x″,&x); 10、在C语言中,运算符″=″和″==″的功能分别是() A.关系运算和赋值运算B.赋值运算和关系运算 C.都是关系运算D.都是赋值运算 11、设int x[]={1,2,3,4,5},*p=x;,则值为3的表达式是() A.p+=2, *p++ B.p+=2, *++p C.p+=2, p++ D.p+=2, ++*p 12、设for(i=0, j=10; (j>0)&&(i<4); i++, j--);,该语句的循环次数是() A.0 B.3 C.4 D.无限 13、设函数定义如下: float f1 (float a, float b) { return (a+b); } 若有float x=1.1, y=2.2;,则以下语句中正确的函数调用是() A.printf (″%f″, f1(x)); B.printf (″%f″,f1(&x, y)); C.printf (″%f″,f1(*x,*y)); D.printf (″%f″,f1(x, y)); 14、若有说明:int i,j=7,*p=&i;则与i=j;等价的语句是()。 A. i=*p; B. *p=*&j; C. i=&j ; D. i=**p; 15、设char str1[10]=″ABCDE″,str2[10]=″XYZ″;则执行语句: printf(″%d″,strlen(strcpy(str1,str2))); 后的输出是()。 A. 3 B. 5 C. 8 D. 9 二、填空题(本大题共10小题,每小题2分,共20分) 16、一个C语言程序的基本组成单位是___________________。 17、求字符串的有效长度的系统函数名是___________________。 18、设float a [4][5];,则数组a中第一维下标的最大值是___________________。 19、设int a; float b; char c; long d; double e; , 则表达式a/c-b+d-e值的类型是 ______________。 20、设int a=2;,则执行a+=a*=15;后,变量a的值是__________。 21、一个C语言程序的执行起点是__________。 22、设double y[4][5];,则数组y中元素的个数是__________。 23、设int x=7,y=3,则表达式x%y+x/y的值是__________。 24、一个short型变量所占内存的字节数是____________________。 单项选择题 (002) 阅读程序题 (018) 程序填空题 (039) 编写程序题 (070) 一、单项选择题 导读:单项选择题要求从给出的四个备选答案中,选出一个最符合题意的答案。本类习题主要检查对C语言基本概念的掌握情况,读者可根据学习进度选做部分习题。在完成习题的过程中,不但要选出正确的答案,而且要清楚不正确的选项错在何处,以加深对概念的理解。对于掌握不准的问题,应该通过上机实验来检验。 【1.1】以下不正确的C语言标识符是____。 A) int B) a_1_2 C) ab1exe D) _x 【1.2】以下是正确的C语言标识符是____。 A) #define B) _123C) %d D) \n 【1.3】下列四组字符串中都可以用作C语言程序标识符的一组是。 ??? A) print B) i\am C) Pxq D) str_l ??? _3d one_half My->book Cpp ??? oodbs tart$it line# pow ??? aBc 3pai His.age while 【1.4】下面各选项组中,均是C语言关键字的组是。 A) auto,enum,include B) switch,typedef,continue C) signed,union,scanf D) if,struct,type 【1.5】下列不属于C语言关键字的是。 A) default B) register C) enum D) external 【1.6】C语言程序从main()函数开始执行,所以这个函数要写在____。 A) 程序文件的开始B) 程序文件的最后 C) 它所调用的函数的前面D) 程序文件的任何位置 【1.7】下列关于C语言的叙述错误的是____ A) 大写字母和小写字母的意义相同 B) 不同类型的变量可以在一个表达式中 C) 在赋值表达式中等号(=)左边的变量和右边的值可以是不同类型 D) 同一个运算符号在不同的场合可以有不同的含义 【1.8】在C语言中,错误的int类型的常数是。 A) 32768 (超过了范围) B) 0 C) 037 D) 0xAF 【1.9】执行语句printf("%x",-1);屏幕显示____。 A) -1 B) 1 C) –ffff D) ffff 【1.10】已知long i=32768;执行语句printf("%d",i);屏幕显示____。 A) -1 B) -32768C) 1 D) 32768 【1.11】已知long i=65539; 执行语句printf("%d",i);屏幕显示____。 A) 65539 B) -3 C) 3D) 程序不能执行 【1.12】在C语言中,整数-8在内存中的存储形式是。 A) 1111 1111 1111 1000B) 1000 0000 0000 1000 C) 0000 0000 0000 1000 D) 1111 1111 1111 0111 【1.13】C语言中字符型(char)数据在内存中的存储形式是____。 C 语言程序设计 笔试试题 试卷说明: 1. 笔试卷面总分100分,取卷面成绩的70%计入总分; 2. 综合成绩为平时成绩(10%)和实验成绩(20%)之和,占总分的30%; 3. 答题时禁止拆开试卷钉,试卷背面即为草稿纸; 4. 答题时间120分钟。 一、单项选择题。将正确答案填入下面框中。 (本题16分,每小题1分) 1. 有以下程序 main() {int a=1,b=0; if(!a) b++; else if(a==0) if(a) b+=2; else b+=3; printf(“%d\n ”,b); }则程序输出( A )。 A) 0 B) 1 C) 2 D) 3 2. 有以下定义:int a; long b; double x,y;则下列正确的是( A )。 A) a%(int)(x-y) B) a=x!=y C) (a*y)%b D) y=x+y=x 3. 若有定义 int (*p)[3];则下列说法正确的是( C )。 注意行为规范 遵守考试纪律 A) 定义了基类型为int的三个指针变量 B) 定义了一个名为*pt、具有三个元素的整型数值 C) 定义了一个名为pt的指针变量,它可以指向每行有三个整数元素的二维数组 D) 定义了基类型为int的具有三个元素的整型数组 4. 有以下程序段 main() { int x=10; while(x--); printf("x=%d\n",x);} 则最后的输出结果是:( B)。 A) x=0 B) x= -1 C) x=1 D)while构成无限循环 5. 有以下程序: int fun() {static int x=1; x *= 2; return x;} main( ) { int i,s=1 ; for(i=1 ;i<=2 ;i++) s=fun() ; printf(“%d\n ”,s) ;} 执行后的输出结果为( D)。 A) 0 B) 1 C) 8 D) 4 6. void main( ){ int k=011; printf("%d\n",k++); } }程序输出结果是( D ) A)12 B) 11 C) 10 D) 9 7. 以下C语言标识符中,不合法的是( C)。 A) _2 B) a_b C) a--b D) AaBc 8. C语言允许函数类型默认定义,此时该函数值隐含的类型是( B)。 A) float B) int C) long D) double 9. 以下程序段运行结果是( B)。 enum weekday{aa,bb=2,cc,dd,ee}week=ee; 一、程序设计共113 题第1 题题 号:319 #include "stdio.h" void wwjt(); int fun(int m) { int i,k=1; if(m<=1) k=0; for(i=2;i 装订线 装订线 装订线 订 线 庄子云:“人生天地之间,若白驹过隙,忽然而已。”是呀,春秋置换,日月交替,这从指尖悄然划过的时光,没有一点声响,没有一刻停留,仿佛眨眼的功夫,半生已过。 人活在世上,就像暂时寄宿于尘世,当生命的列车驶到终点,情愿也罢,不情愿也罢,微笑也罢,苦笑也罢,都不得不向生命挥手作别。 我们无法挽住时光的脚步,无法改变人生的宿命。但我们可以拿起生活的画笔,把自己的人生涂抹成色彩靓丽的颜色。 生命如此短暂,岂容随意挥霍!只有在该辛勤耕耘的时候播洒汗水,一程风雨后,人生的筐篓里才能装满硕果。 就算是烟花划过天空,也要留下短暂的绚烂。只有让这仅有一次的生命丰盈充实,才不枉来尘世走一遭。雁过留声,人过留名,这一趟人生旅程,总该留下点儿什么! 生活是柴米油盐的平淡,也是行色匆匆的奔波。一粥一饭来之不易,一丝一缕物力维艰。 前行的路上,有风也有雨。有时候,风雨扑面而来,打在脸上,很疼,可是,我们不能向生活低头认输,咬牙抹去脸上的雨水,还有泪水,甩开脚步,接着向前。 我们需要呈现最好的自己给世界,需要许诺最好的生活给家人。所以,生活再累,不能后退。即使生活赐予我们一杯不加糖的苦咖啡,皱一皱眉头,也要饮下。 人生是一场跋涉,也是一场选择。我们能抵达哪里,能看到什么样的风景,能成为什么样的人,都在于我们的选择。 如果我们选择面朝大海,朝着阳光的方向挥手微笑,我们的世界必会收获一片春暖花开。如果我们选择小桥流水,在不动声色的日子里种篱修菊,我们的世界必会收获一隅静谧恬淡。 选择临风起舞,我们就是岁月的勇者;选择临阵脱逃,我们就是生活的懦夫。 没有淌不过去的河,就看我们如何摆渡。没有爬不过去的山,就看我们何时启程。 德国哲学家尼采说:“每一个不曾起舞的日子,都是对生命的辜负。”让我们打开朝着晨光的那扇窗,迎阳光进来,在每一个日出东海的日子,无论是鲜衣怒马少年时,还是宠辱不惊中年时,都活出自己的明媚和精彩。 时间会带来惊喜,只要我们不忘记为什么出发,不忘记以梦为马,岁月一定会对我们和颜悦色,前方也一定会有意想不到的惊喜。 人生忽如寄,生活多苦辛。 短暂的生命旅程, 别辜负时光,别辜负自己。 愿我们每一个人自律、阳光、勤奋, C语言程序设计试题及 答案 内部编号:(YUUT-TBBY-MMUT-URRUY-UOOY-DBUYI-0128) C语言程序设计 一、选择题(共40分,每小题2分) 1、以下叙述不正确的是() A、一个C源程序可由一个或多个函数组成 B、一个C源程序必须包含一个main函数 C、C程序的基本组成单位是函数 D、在C程序中,注释说明只能位于一条语句的后面 2、下列四个选项中,是不合法的用户标识符的选项是() A、abc B、12AC C、sun D、 A2 3、设有语句int a=4;则执行了语句a+=a- =a*a后,变量a的值是() A、-24 B、0 C、4 D、16 4、下列运算符中优先级最高的是() A、< B、+ C、&& D、== 5、在C语言中,运算对象必须是整型数的运算符是() A、% B、/ C、%和/ D、 + 6、以下关于运算符的优先顺序的描述正确的是() A、关系运算符<算术运算符<赋值运算符<逻辑与运算符 B、逻辑与运算符<关系运算符<算术运算符<赋值运算符 C、赋值运算符<逻辑与运算符<关系运算符<算术运算符 D、算术运算符<关系运算符<赋值运算符<逻辑与运算符 7、在C语言中,如果下面的变量都是int类型,则输出的结果是() sum=pad=5;pAd=sum++,pAd++,++pAd; printf(“%d\n”,pad); A、7 B、6 C、5 D、4 8、x、y、z被定义为int型变量,若从键盘给x、y、z输入数据,正确的输入语句是() A、 INPUT x、y、z; B、scanf(“%d%d%d”,&x,&y,&z); C、 scanf(“%d%d%d”,x,y,z); D、read(“%d%d%d”,&x,&y,&z); 9、假定从键盘输入23456< 回车 >,下面程序的输出结果是:() void main ( ) { int m,n; scanf(“%2d%3d”,&m,&n); printf(“m=%d n=%d\n”,m,n); } A、m=23 n=45 B、m=234 n=56 C、m=23 n=456 D、语句有错误 10、若运行时,给变量x输入12,则以下程序的运行结果是() main( ) { int x,y; scanf(“%d”,&x); y=x>12?x+10:x-12; printf(“%d\n”,y); } A、 0 B、 22 C、 12 D、10 11、C语言中while和do-while循环的主要区别() C语言程序设计试题 (2008 /2009 学年第二学期) 一.选择题(满分30分,每题2分) 1.若a、b、c都定义为int类型且初值为0,则以下不正确的赋值语句是 D 。 A. a=b=c+8; B. a+=y+3; C. c++; D. a+b+c 2. 已知int j,i=1;执行语句“j=i++;”后,变量i的值是 B 。 A. 1 B. 2 C. –1 D. -2 3.执行下面程序: #include "stdio.h" void main() { int a=1,b=2,c=3; c=(a+=a+2),(a=b,b+3); printf(“%d,%d,%d”,a,b,c); } 则输出结果是: A 。 A. 2,2,4 B. 4,2,3 C. 5,5,3 D. 4,2,5 4.若要求在if后一对圆括号中表示a不等于0的关系,则能正确表示这一关系的表达式为 D 。 A. a< >0 B. !a C. a=0 D. a 5. for (j=0;j<11;j++);循环结束后,j的值是 B 。 A. 12 B. 11 C. 10 D. 9 6. C语言中函数返回值的类型由 D 决定的。 A. return语句中的表达式类型 B. 调用该函数的主调函数的类型 C. 调用函数时临时决定 D. 定义函数时所指定的函数类型 7. 下列说法中正确的是 B 。 A 在调用用户自定义函数时,必须对其进行声明。 B 函数可以返回一个值,也可以什么值也不返回。 C 说明函数时,必须明确参数的类型和返回值。 D 在程序设计中空函数没有什么作用。8. 若int i=10;执行下列程序后,变量i的正确结果是 D 。 switch ( i ) {case 0: i+=1; case 10: i+=1; case 11: i+=1; default: i+=1; } A. 10 B. 11 C. 12 D. 13 9. 下列语句中不正确的字符串赋值或初始化的是 C 。 A. char str[10]={"strings"}; B.char str[8]={'s','t','r','i','n ','g','s','\0'}; C. char str[10]; str= "strings"; D. char str[]= "strings"; 10. 有如下程序: #include 《C语言程序设计》习题集 编程题复习范围(第1页,共2页) 选择结构 1、P76页例3.11 2、P78页求三个数的最大数 3、P78页例3.14 4、P84页比赛报名处理四 5、P90页例3.21 分别用switch 和else if 形式完成 6、P133页3-6 ⑶ 7、P133页3-6 ⑷ 8、P134页3-6 ⑺ 9、P134页3-6 ⑼ 循环结构 1、输入一行字符,分别统计其中英文字母、空格、数字和其他字符的个数 2、输入两个正整数x 和y,求其最大公约数和最小公倍数(提示:设x 和y 的较小值为gcd,则最大公约数的范围在gcd到1之间,用while循环完成) 3、P115页例3.42 4、P127页例3.55 5、P135页3-6 ⒄ 6、P135页3-6 ⒅ 7、输出所有的水仙花数。水仙花数是一个3位正整数,它的三个数字的立方和等于该数本身。例如:153 = 13 + 53 +33 8、P115页例3.43 9、P134页3-6 ⒀ 10、P134页3-6 ⒁ 11、P109页例3.37 12、P118页例3.47 13、P134页3-6 ⑿ 14、P135页3-6 ⒃ 15、P111页例3.39 模块化程序设计 1、P182页4-6 ⑵ 2、P148页例4.6 3、P149页例4.7 4、P151页例4.8 5、P182页4-6 ⑸ 6、P182页4-6 ⑺ 数组和指针 1、P191页例5.6 2、P191页例5.7 3、P192页例5.8 要求:会用函数sum_function求不同长度一维数组的和 4、P193页例5.9 5、P202页例5.12 6、P203页四个程序段 7、P206页例5.15 8、P211页例5.20 9、P212页例5.21 10、输入两个字符串,输出较大的字符串 11、编写函数str_len 求字符串的长度,并在主函数中调用该函数,函数说明如下:(不准使用库函数strlen) int str_len(char *str); 12、输入3行4列的二维整型数组,求最大值及行号、列号 全国软件专业人才设计与开发大赛校内选拔赛 C语言程序设计试题 说明:本试题共15页,请把答案写在答题卡上。 一、单选题(共60小题,每题1分,共60分) 1. 执行下列程序中的输出语句后,x的值是______. main() {int x ; printf(“%d\n”,(x=5*6,x*2,x+20));} A)30 B)60 C)50 D)80 2. 下列程序的输出结果是_______. main() {int x=1,y=0,z; z=(x<=0)&&(y- ->=0); printf(“%d %d% d%\n”,z,x,y);} A)0 -1 -1 B)0 -1 0 C)0 1 0 D)0 1 -1 3. 在C语言中,下列选项属于合法的长整型常数的是_______. A)0L B)1234567 C) D) 4. 下列选项中属于不正确的赋值语句的是_____. A)t++; B)n1=(n2=(n3=0)); C)k=i= =j; D)a=b,c=1; 5. 若有定义:int a,b;char x,y;并有以下输入数据: 14 22 XxYy (回车) 则能给a赋整数14,给b赋整数22,给x赋字符x,给y赋字符y的正确程序段是________. A) scanf(“%d %d”,&a,&b); x=getchar();y=getchar(); B) scanf(“%d%d %c %c”, &a, &b,&x,&x,&y,&y); C) scanf(“%d %d %c%c%c %c”, &a,&b,&x,&x,&y,&y); D) scanf(“%d%d %c %c”, &a, &b,&x,&y); 6. 下列转义字符不正确的是_______. A)'\\' B)'\' C)'\053' D)'\0' 7. 下列选项可作为C语言赋值语句的是_______. A)x=3,y=5 B)a=b=6 C)i- -; D)y=int(x); 8. 当c的值不为0时,下列选项中能正确将c的值赋给变量a、b的是_______. A)c=b=a; B)(a=c)‖(b=c); C)(a=c)&&(b=c); D)a=c=b; 9. 有以下程序: main() { unsigned int a ; int b=-1; a=b;C语言程序设计试题及答案
C语言程序设计试题集与答案解析
C语言程序设计试题集
C语言程序设计试卷及答案
C语言程序设计习题集(3)
C语言程序设计期末考试试题(含答案)
C语言程序设计程序填空题库及答案
C语言程序设计试题与答案D
C语言程序设计试题集及答案
C语言程序设计试卷及答案
c语言程序设计题目及答案
C语言程序设计期末考试题及答案
C语言程序设计试题及答案
C语言程序设计期末考试试题及答案
C语言程序设计习题集
C语言程序设计试题