C语言程序设计题库及答案

更新时间:2024-06-09 14:48:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

C语言程序练习题

一、选择题

1. 高级语言编写的程序称( )。

A.高级程序 B.源程序 C.目标程序 D.BASIC程序 2. 一个C程序的执行是从( )。

A. 本程序的main函数开始,到main函数结束。

B. 本程序文件的第一个函数开始,到本程序文件的最后一个函数结束 C. 本程序的main函数开始,到本程序文件的最后一个函数结束 D. 本程序文件的第一个函数开始,到本程序的main函数结束 3. 以下叙述正确的是( )。

A. 在C程序中,main函数必须位于程序的最前面 B. C程序的每行中只能写一条语句 C. C语言本身没有输入输出语句

D. 在对一个C程序进行编译的过程中,可发现注释中的拼写错误 4. 以下叙述不正确的是( )。

A. 一个C源程序可由一个或多个函数组成 B. 一个C源程序必须包含一个main函数 C. C程序的基本组成单位是函数

D. 在C程序中,注释说明只能位于一条语句的后面 5. 下列字符中属于键盘符号的是( )。

A.\\ B.\\n C.\\t D.\\b 6. 下列不正确的转义字符是( )。

A.\\\\ B. \\’ C.074 D.\\0 7. 下面四组选项中,均是合法的转义字符的选项是( )。 A.‘\\’ ’ ‘\\\\’ ‘\\n’ B. ‘\\’ ‘\\017’ ‘\\” ’ C. ‘\\018’ ‘\\f ’ ‘xab’ D. ‘\\\\0’ ‘\\101’ ‘x1f’

8. 下面四组选项中,均是不正确的八进制数或十六进制数的选项是( )。 A. 016 0x8f 018 B. oabc 017 0xa C. 010 -0x11 0x16 D. 0a12 7ff -123

9. 不是C语言提供的合法关键字是( )。

A.switch B.cher C.case D.default 10.

C语言提供的合法关键字是( )。

A.next B.string C.do case D.struct 11.

下面四组选项中,均是C语言关键字的选项是( )。

A auto enum include B switch typedef continue C signed union scanf D if struct type 12.

下列不正确的标识符是( )。

A.-a1 B.a[i] C.a2_i D.int t 13.

下面四组选项中,均是不合法的用户标识符的选项是( )。

A)A P_0 do B)float 1a0 _A C)b-a goto int D)_123 temp INT 14.

C语言中的标识符只能由字母、数字和下划线三种字符组成,且第一个字符 ( )。

A)必须为字母 B)必须为下划线 C)必须为字母或下划线

D)可以是字母、数字和下划线中任一种字符 15.

下面四组选项中,均是合法的整型常量的选项是( )。

A)160 -0xffff 011 B)-0xcdf 01a 0xe C)-01 986,012 0668

D)-0x48a 2e5 / 0x 16.

下面四组选项中,均是不合法的浮点数的选项是( )。

A)160. 0.12 e3 B)123 2e4.2 .e5 C)-.18 123e4 0.0 D)-e3 .234 1e3 17. 下列说法中正确的是( )。

A.由于C源程序是高级语言程序,因此一定要在TC软件中输入。

B.由于C源程序是由字符流组成的,因此可以作为文本文件在任何文本编辑的软件中输入。

C.由于C程序是高级语言程序,因此输入后即可执行。 D.由于C程序是高级语言程序,因此它是由命令组成的。 18. 下列方法中错误的是( )。

A.主函数可以分为两个部分:主函数说明部分和主函数体。 B.主函数可以调用任何非主函数的其它函数。 C.任何非主函数可以调用其它任何非主函数。 D.程序可以从任何非主函数开始执行。

19. 下列数据中属于“字符串常量”的是( )。

A.“a” B.{ABC} C.‘abc\\0 D.‘a’ 20.下面不正确的字符串常量是( )。

A) ‘abc’ B)“12’12” C)“0” D)“ ” 21.在PC机中,“a\\xff”在内存占用的字节数是( )。

A.5 B.6 C.3 D.4 22.若x,i,j和k都是int型变量,则计算下面表达式后,x的值为 ( )。 x=(i=4,j=16,k=32) A)4 B)16 C)32 D)52

23.在C语言中(以16位PC机为例),5中基本数据类型的存储空间长度的排列顺序为(A) char < int < long int <= float

4 B.6 C.7 D.8

25.下列数据中不属于“字符常量”的是( )。

A.‘\\a’ B.‘\\160’ C.‘070’ D.070 26.若有代数式 3aebc,则不正确的C语言表达式是( )。 A)a / b / c * e * 3 B)3* a *e / b / c C)3* a *e / b * c D)a * e / c / b *3

27.以下不正确的叙述是( )。

A)在C程序中,逗号运算符的优先级最低 B)在C程序中, APH和aph是两个不同的变量

。 ) C)若a和b类型相同,在计算了赋值表达式a=b后b中的值将放入a中,而b中的值不变 D)当从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输入实型数值 28.以下正确的叙述是( )。

A)在C程序中,每行中只能写一条语句

B)若a是实型变量,C程序中允许赋值a=10,因此实型变量中允许存放整型数 C)在C程序中,无论是整数还是实数,都能被准确无误的表示 D)在C程序中,%是只能用于整数运算的运算符 29.以下符合C语言语法的赋值表达式是( )。 A)d=9+e+f=d+9 B)d=9+e,f=d+9 C)d=9+e,e++,d+9 D)d=9+e++=d+7

30.已知字母A的ASCⅡ码为十进制数65,且c2为字符型,则执行语句c2=‘A’+’6’-’3’;后,c2中的值为( )。 A) D B) 68

C) 不确定的值 D) C

31.设整型变量m,n,a,b,c,d均为0,则执行“(m=a==b)||(n=c==d)”后,m,n的值是( )。 A.0,0 B.0,1 C.1,0 D.1,1 32.设a为2,则执行下列语句后,b的值不为0.5的是( )。

A.b=1.0/a B.b=(float)(1/a) C.b=1/(float)a D.b=1/(a*1.0)

33.设变量a是整型,f是实型,i是双精度型,则表达式10+’a’+i*f 值的数据类型为 ( )。 A)int B)float C)double D)不确定

34.设有说明:char w; int x; float y; double z;则表达式w*x+z-y值的数据类型为( )。 A)float B)char C)int D)double 35.执行语句“x=(a=3,b=a--)”后,x,a,b的值依次为( )。

A.3,3,2 B.3,2,2 C.3,2,3 D.2.3.2 36.若有以下定义,则能使值为3的表达式是( )。 int k = 7, x = 12;

A) x%=(k - k%5) B) x%=(k%=5) C) x%=k - k%5 D) (x%=k)-(k%=5) 37.putchar函数可以向终端输出一个( )。 A)整型变量表达式值 B)实型变量值

C)字符串 D)字符或字符型变量值

38.已有定义int a=-2;和输出语句:printf(“%8lx”,a);以下正确的叙述是( )。 A)整型变量的输出格式符只有%d一种

B)%x是格式符的一种,它可以适用于任何一种类型的数据

C)%x是格式符的一种,其变量的值按十六进制输出,但%8lx是错误的 D)%8lx不是错误的格式符,其中数字8规定了输出字段的宽度

39.printf函数中用到格式符%5s,其中数字5表示输出的字符串占用5列。如果字符串长度大于5,则输出按方式( );如果字符串长度小于5,则输出按方式( )。 A)从左起输出该字符串,右补空格 B)按原字符串长从左向右全部输出 C)右对齐输出该字符串,左补空格 D) 输出错误信息

40.设有语句“int a=r,b=3,c=-2,d=2;”,则逻辑表达式“a>0&&b&&c<0&&d>0”的值是(A.1 B.0 C.-1 D.出错 41.若已定义x和y为double类型,则表达式“x=1,y=x+3/2”的值是( )。 A.1 B.2 C.2.0 D.2.5 42.表达式“1?(0?3:2)(10?1:0)”的值是( )。

A.3 B.2 C.1 D.0

43.设a为整型变量,则不能正确表达数学关系10<a<15的C语言表达式是( )。 A.10

B.a==11||a==12||a==13||a==14 C.a>10&&a<15

D.!(a<=10)&&!(a>=15)

44. 下列表达式中符合C语言语法的赋值表达式是( )。 A.a=7+b+c=a+7 B.a=7+b++=a+7 C.a=(7+b,b++,a+j) D.a=7+b,c=a+7

45. 若“int n; float f=13.8;”,则执行“n=((int)f)%3”后,n的值是( )。 A.1 B.4 C.4,333333 D.4.6 46. 设有整型变量x=35,则表达式“(x&15)&&(x|15)”的值是( )。 A.0 B.1 C.15 D.35

47. 设a是char型变量,其值字符为‘1’,则把其值变成整数1的表达式是( )。 A.(int)a B.int(a) C.a=a-48 D.a/(int)a

48. a=1234,b=12,c=34,则执行“printf(“|==%-3d|\\n”,a,b,c);”后的输出是(A.|1234 1234 | B.|123 1234 | C.|1234 12-34| D.|234 1234 |

。 )。 )

49. 设有“int a=255,b=8;”,则“printf(“%x,%o\\n”,a,b);”输出的是( )。 A.255,8 B.ff,10 C.0xff,010 D.10,9

50.已有如下定义和输入语句,若要求a1,a2,c1,c2的值分别为10,20,A和B,当从第一列开始输入数据时,正确的数据输入方式是( )。(注: 表示空格,表示回车) int a1,a2; char c1,c2;

scanf(“%d%c%d%c”,&a1,&c1,&a2,&c2);

A) 10A 20B B) 10 A 20 B C) 10A20B D) 10A20 B 51.根据定义和数据的输入方式,输入语句的正确形式为( )。

已有定义:float f1,f2; 数据的输入方式:4.52

3.5

A)scanf(“%f,%f”,&f1,&f2); B)scanf(“%f%f”,&f1,&f2); C)scanf(“%3.2f,%2.1f”,&f1,&f2); D)scanf(“%3.2f%2.1f”,&f1,&f2); 52.指出下面正确的输入语句是( ) A.scanf (“a=b=%d”,&a,&b); B.scanf(“a=%d,b=%f”,&m,&f); C.scanf(“<”,c); D.scanf(“%5.2f,&f);

53. 设x,t均为int型变量,则执行语句“x=10;t=x&&x>10;”后,t的值为( )。 A.不定值 B.10 C.1 D.0 54. 假定所有变量均已正确定义,则下列程序段运行后y的值是( )。 int a=0,y=10;

if(a=0) y--; else if(a>0) y++; else y+=y;

A.20 B.11 C.9 D.0 55. 假定所有变量均已正确定义,则下列程序段运行后x的值是( )。 a=b=c=0; x=35;

if(!a) x--; else if(b); if(c) x=3; else x=4;

A.34 B.4 C.35 D.3

56. 若有“int a=1,x=1;”,则循环语句“while(a<10) x++; a++;”的循环执行( )。 A.无限次 B.不确定次 C.10次 D.9次 57. 循环“for(i=0,x=1;i=10&&x>0;i++);”的循环执行( )。

A.无限次 B.不确定次 C.10次 D.9次 58. 假定i和j为int型变量,则执行以下语句后j的值是( )。 int i=1;

switch(i++) {

case 1:for(j=0;j<9;j++) if(i==1) break; case 2:for(j=1;j<10;j++) if(i==2) break; case 3:printf(“i=%d\\n”,i); }

A.0 B.1 C.9 D.10

59. 设x和y均为int型变量,则执行以下的循环后,y的值为( )。

for(y=1,x=1;y<=50;y++) {

if(x>=0) break;

if(x%2==1) {x+=5;continue;} x-=3; }

A.2 B.4 C.6 D.8 60. 在C语言中,下列说法中正确的是( )。 A. 不能使用“do 语句 while(条件)”的循环

B. “do 语句 while(条件)”的循环必须使用“break”语句退出循环 C. “do 语句 while(条件)”的循环中,当条件为非0时将结束循环 D. “do 语句 while(条件)”的循环中,当条件为0时将结束循环 61. 在C语言语句中,用来决定分支流程的表达式是( )。

A.可用任意表达式 B.只能用逻辑表达式或关系表达式 C.只能用逻辑表达式 D.只能用关系表达式 62. 若有以下数组说明,则数值最大的和最小的元素下标分别是( )。

int a[12]={1,2,3,4,5,6,7,8,9,10,11,12};

A.1,12 B.0,11 C.1,11 D.0,12 63. 若有以下数组说明,则i=10;a[a[i]]元素数值是( )。

int a[12]={1,4,7,10,2,5,8,11,3,6,9,12};

A.10 B.9 C.6 D.5 64. 若有int a[3][5]={{2,2},{2,6},{2,6,2}},则数组a共有个元素:( A.8 B.5 C.3 D.15

65. 若有int a[7]={1,2,3,4,5,6,7},*p=a则不能表示数组元素的表达式是: ( ))

A.*p B.*a C.a[7] D.a[p-a] 66. 若有以下说明,则数值为4的表达式是( )。

int a[12]={1,2,3,4,5,6,7,8,9,10,11,12}; char c=’a’,d,g;

A.a[g-c] B.a[4] C.a[‘d’-‘c’] D.a[‘d’-c] 67.

下列语句中,正确的是( )。

A. char a[3][]={‘abc’,‘l’}; B. char a[][3]={‘abc’,‘l’}; C. char a[3][]={‘a’,“l”}; D. char a[][3]={“a”,“l”}; 68.

下列定义的字符数组中,“printf(“%s\\n”,str[2]);”的是输出是( )。

static str[3][20]={“basic”,“foxpro”,“windows”};

A.basic B.foxpro C.windows D.输出语句出错 69.

合法的数组定义是( )。

A. int a[]={“string”}; B. int a[5]={0,1,2,3,4,5}; C. char a={“string”}; D. char a[]={0,1,2,3,4,5};

70.设有如下字符数组定义,则合法的函数调用是( )。 char a[]=“I am a student”,b[]=“techer”; A.strcmp(a,b); B.strcpy(a,b[0]); C.strcpy(a[7],b); D.strcat(a[7],b); 71.设有如下定义,则正确的叙述为( )。 char x[]=“abcdefg”;

char y[]={‘a’,‘b’,‘c’,‘d’,‘e’,‘f’,‘g’}; A. 数组x和数组y等价 B. 数组x和数组y长度相同 C. 数组x的长度大于数组y的长度 D. 数组x的长度小于数组y的长度 72.下列描述中不正确的是( )。 A. 字符型数组中可能存放字符串。

B. 可以对字符型数组进行整体输入、输出。 C. 可以对整型数组进行整体输入、输出。

D. 不能在赋值语句中通过赋值运算符“=”对字符型数组进行整体赋值。

73.设有如下二维数组定义,则不正确的元素引用是( )。 int a[3][4]={1,2,3,4,5,6,7,8,9,10,11,12}; A.a[2][3] B.a[a[0][0]][1] C.a[7] D.a[2][‘c’-‘a’] 74.对于同类型的指针变量,不可能进行的运算是( )。

A.- B.= C.+ D.== 74.下列不正确的定义是( )。

A. int *p=&i,i; B.int *p,i; C.int i,*p=&i; D.int i,*p;

75.设指针x指向的整型变量值为25,则“printf(“%d\\n”,++*x);”的输出是( )。 A.23 B.24 C.25 D.26 76. 若有说明:“char ch,*p;”,则不能正确获得值的语句是( )。 A.*p=getchar();

B.p=&ch;scanf(“%c”,p);

C.p=(char *)malloc(1);*p=getchar(); D.p=&ch;*p=getchar();

77.以下选项中不能使指针正确指向字符串的是( ) A) char *ch;*ch=“hello” B) char *ch=“hello”

C) char *ch=“hello”;ch=“bye” D) char *ch”;ch=“hello”

78. 若有说明语句“int a[5],*p=a;”,则对数组元素的正确引用是( )。 A.a[p] B.p[a] C.*(p+2) D.p+2 79. 若有以下定义,则不能表示a数组元素的表达式是( )。 int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a;

A.*p B.a[10] C.*a D.a[p-a] 80. 若有以下定义,则值为3的表达式是( )。 int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a; A.p+=2,*(p++) B.p+=2,*++p C.P+=3,*p++ D.p+=2,++*p;

81. 若有定义“int a[3][4];”则对数组元素a[i][j](0<=i<3,0<=j<4)正确的引用是( )。 A.*(a+4*i+j) B.*(*(a+i)+j) C.*(a+i)[j] D.a[i]+j

82. 若有定义“int a[3][4],*p=a;”,则对数组元素a[i][j](0<=i<3,0<=j<4)正确的引用是( )。

A.p=a B.*(*(p+i)+j) C.*(p+i*4+j) D.*(a+i)+j 83. 有如下定义和语句,则输出结果是( )。 int **pp,*p,a=10,b=20;

pp=&p;p=&a;p=&b;printf(“%d,%d\\n”,**pp,*p);

A.10,20 B.10,10 C.20,10 D.20,20 84. 若用数组名作为函数调用的实参,传递给形参的是( ) A.数组的首地址 B.数组第一个元素的值 C.数组中全部元素的值 D .数组元素的个数

85. 以下叙述中不正确的是( ) A.在不同的函数中可以使用相同名字的变量。 B.函数中的形式参数是局部变量。

C.在一个函数内的复合语句中定义变量在本函数范围内有效。 D.在一个函数内定义的变量只在本函数范围内有效。 86. 在C语言程序中,有关函数的定义正确的是( )。 A. 函数的定义可以嵌套,但函数的调用不可以嵌套 B. 函数的定义不可以嵌套,但函数的调用可以嵌套 C. 函数的定义和函数的调用均不可以嵌套 D. 函数的定义和函数的均可以嵌套

87. 以下对C语言函数的有关描述中,正确的是( )。

A. 在C语言程序中,调用函数时,只能把实参的值传递给形参,形参的值不能传送给实参 B. C语言函数既可以嵌套定义又可递归调用 C. C语言函数必须有返回值,否则不能使用函数

D. 在C语言程序中有调用关系的所有函数必须放在同一个源程序文件中 88. 函数调用语句“f((e1,e2),(e3,e4,e5));”中参数个数是( )。 A.5 B.4 C.2 D.1 89.

有一函数的定义如:void fun(char *s){??},则不正确的函数调用是( )。

A. main()

{char a[20]=”abcdefgh”; fun(a); ?? }

1.汇编语言属于面向 的语言,高级语言属于面向 的语言。

2.C语言从源程序的书写到上机运行输出结果要经过____、_____、_____、_ 四个步骤。 3.C源程序的基本单位是 。

4.C语言中实型变量分为两种类型,是 和 。 5.C程序设计的三种基本结构是 ________、________和________。

6.在C语言程序中允许出现的字符集是 、 、 和 。 7.C语言程序是由函数构成的,其中有并且只能有 个主函数。C语言程序的执行总是由 函数开始,并且在 函数中结束。

8.C语言中的逻辑值“真”是用 表示的,逻辑值“假”是用 表示的。逻辑表达式值为“真”是用 表示的,逻辑表达式值为“假”是用 表示的。 9.有下列运算符:<<、+、++、&&、<=,其中优先级最高的是 ,优先级最低的是 。

10.设x和y均为int型变量,且x=1,y=2,则表达式“1.0+x/y”的值为 。 11.若a是int型变量,则下面表达式的值为 。 (a = 4 * 5 , a * 2), a + 6

12.能表述“20

14.若有定义语句“int a=25,b=14,c=19;”,则以下语句执行结果是 。 if(a++<=25&&b--<=2&&c++)

printf(“***a=%d,b=%d,c=%d\\n”,a,b,c); else printf(“***a=%d,b=%d,c=%d\\n”,a,b,c);

15.以下两条if语句可合并成一条if语句,即 。 if(a<=b) x=1; else y=2;

if(a>b) printf(“****y=%d\\n”,y); else printf(“****x=%d\\n”,x);

16.设i,j,k均为int型变量,则执行完下面的for循环后,k的值为 。 for(i=0,j=10;i<=j;i++,j--) k=i+j;

17.在C语言中,数组的各元素必须具有相同的 ,元素的下标下限为 ,但在执行过程中,不检查元素下标是否 。下标必须是正整数、0或者 。 18.在C语言中,数组在内存中各占一片 的存储区,由 数组名代表它的首地址。数组名是一个 常量,不能对它进行加、减和赋值运算。 19.在C语言中,二维数组元素在内存中的存放顺序是 。

20.若有定义:double x[3][5];则x数组中行下标的下限为 ,列小标的上限

为 。

21.若有定义:int a[3][4]={{1,2},{0},{4,6,8,10}};则初始化后,a[1][2]得到的初值是 ,a[2][2]得到的初值是 。

22.执行“static int b[5],a[][3]={1,2,3,4,5,6};”后,b[4]= ,a[1][2]= 。 23.设有定义语句“static int a[3][4]={{1},{2},{3}};”,则a[1][1]的值为 , a[2][1]的值为 。

24.若在程序中用到“putchar()”函数,则应在程序开头写上包含命令 ,若在程序中用到“strlen()”函数,则应在程序开头写上包含命令 。

25.在C语言中,数组名是一个 常量,不能对这进行 和 运算,

由 代表它的首地址。

26.在C程序中,指针变量只能赋 值和 值。

27.在C程序中,指针变量可以通过 、 、 三种方式赋值。 28.在C程序中,可以对指针变量进行 和 来移动指针。 29.“*”称为 运算符,“&”称为 运算符。

30. 设有“char *a=“ABCD”;”,则“printf(“%s”,a)”的输出是 ,而printf(“%c”,*a)的输出是 。

31.函数中的形参和调用时的实参都是数组名时,传递方式为 ,都是变量时,传递方式为 。

32.若自定义函数要求返回一个值,则应在该函数体中有一条 语句;若自定义函数要求不返回一个值,则应在该函数说明时加一个类型说明符 。

33.若函数的形式参数是指针类型,则实参可以是 、 和 。 34.下面函数要求计算两个整数x,y之和,并通过形参z传回该和值。请填空。 void add(int x, int y, ) { =x+y; return;}

35.“.”称为 运算符,“->”称为 运算符。

36.若有以下说明和定义语句,则变量w在内存中所占的字节数是 。 union aa {float x; float y; char c[6];};

struct st { union aa v; float w[5]; double ave;} w; 37.若有以下定义和语句,则表达式“++p->a”的值是 。 struct wc{int a; int *b;}; int x[]={11,12}; y[]={31,32};

static struct wc z[]={100,x,300,y},*p=z;

38.C语言中调用 函数打开文件,调用 函数关闭文件。

39.在C语言程序中,对文件进行操作首先要_____;然后对文件进行操作,最后要对文件实行

_____操作,防止文件中信息的丢失。

40.“FILE *p”的作用是定义了一个 ,其中的“FILE”是在 头文件中定义的。 41.若在程序中用到“putchar()”函数,则应在程序开头写上包含命令 ,若在程序中用到“strlen()”函数,则应在程序开头写上包含命令 。

42.下列程序的功能是从输入的整数中,统计大于零的整数个数和小于零的整数个数。用输入0来结束输入,用i,j来放统计数,请填空完成程序。 void main() { n,i,j;

printf(“输入整数,以0结束输入\\n”); scanf(“%d”,&n); while

{ if(n>0) i= ; if(n<0) j= ; ; }

printf(“i=M,j=M\\n”,i,j); }

43.下列程序的功能是输入一个正整数,判断是否是素数,若为素数则输出1,否则输出0,请填空完成程序。 void main() { int i,x,y=1; scanf(“%d”,&x); for(i=2;i<=x/2;i++)

if {y=0;break;} printf(“%d\\n”,y); }

44.以下程序的功能是输入50个数,以每行10个数据的形式输出a数组,请填空。 void main() { int a[50], i;

printf(“输入50个整数:”);

for(i=0;i<50;i++) scanf(“%d”, ); for(i=0;i<50;i++)

{ if( ) ; printf(“=”,a[i]);

} }

45.程序说明:统计正整数的各位数字中零的个数,并求各位数字中的最大者。 #include void main() {

int n,count,max,t; count=max=0; scanf(“%d”,&n); do

{ t= ; if(t==0) ++count;

else if(max

printf(“count=%d,max=%d”,count,max); }

46.下面程序的功能是输出数组s中最大元素的下标,请填空。 void main() { int k,p;

int s[]={1,-9,7,2,-10,3};

for(p=0,k=p;p<6;p++) if(s[p]>s[k]) ; printf(“%d\\n”,k); }

47.下面程序的功能是在a数组中查找与x值相同的元素所在位置。数据从a[1]元素开始存放,请填空。

#include void main() { int a[11],i,x;

printf(“输入10个整数:”);

for(i=1;i<=10;i++) scanf(“%d”,&a[i]);

printf(“输入要找的数x:”); scanf(“%d”, ); a[0]=x; i=10;

while(x!= ) ;

if( ) printf(“与x值相同的元素位置是:%d\\n”,i); else printf(“找不到与x值相同的元素!\\n”); }

48.下面程序的功能是将一个字符串str的内容颠倒过来,请填空。 #include “string.h” void main() { int i,j, ,;

char str[]={“1234567”};

for(i=0,j=strlen(str); ;i++,j--) { k=str[i]; str[i]=str[j]; str[j]=k;} }

49.以下程序的功能是给偶数行的方阵中所有边上的元素和两对角线上的元素置1,其它元素置0(要求对每个元素只置一次值)。最后按矩阵形式输出。请填空。 void main()

{ int a[10][10],i,j; for(i=0;i<10;i++)

{a[ ][i]=1; a[i][ ]=1;} for(i=1;i<9;i++) a[0][ ]=1; for(i=1;i<9;i++) a[ ][i]=1;

for(i=1;i<9;i++) a[i][ ]=1;

for(i=1;i<9;i++) a[ ][9]=1; for(i=1;i< ;i++) for(j=1;j< ;j++)

if( ) a[i][j]=0; for(i=0;i<10;i++)5

{ for(j=0;j<10;j++) printf(“-”,a[i][j]); ; } }

50.用键盘输入一串字符,下面程序能统计输入字符中大写字母的个数,用‘#’号结束输入,请填空。

#include void main()

{ int c[26],i; char ca;

for(i=0;i<26;i++) c[i]= ; scanf(“%c”,&ca); while( )

{ if((ca>=’A’)&&(ca<=’Z’)) c[ca-65]+= ;

; }

for(i=0;i<26;i++)

if(c[i]) printf(“%c:%d个\\n”,i+ ,c[i]); }

51.以下程序可把输入的十进制长整型数以十六进制数的形式输出,请填空。 void main()

{ char b[17]={“0123456789ABCDEF”}; int c[64],d,i=0,base=16; long n;

printf(“Enter a number:\\n”); scanf(“%d”,&n);

do {c[i]= ;i++;n=n/base;}; while (n!=0);

printf(“Transmit new base:\\n”);

52.以下程序用指针指向三个整型存储单元,输入三个整数,选出其中最小值并输出。请填空。 #include main()

{ int ;

a=(int *)malloc(sizeof(int)); b=(int *)malloc(sizeof(int)); c=(int *)malloc(sizeof(int)); min=(int *)malloc(sizeof(int));

printf(“输入三个整数:\\n”);scanf(“%d%d%d”, ); printf(“输出这三个整数:%d%d%d\\n”, ); *min=*a;

if(*a>*b) ; if( >*c) ;

printf(“输出最小整数:%d\\n”, ); }

53.以下程序的功能是从键盘上输入若干个字符(以回车键作为结束)组成一个字符串,存入一具字符数组,然后输出该字符数组中的字符串,请填空。 #include “stdio.h” #include “ctype.h” main()

{ char str[81], *sptr; int i;

for(i=0;i<80;i++)

{ str[i]=getchar(); if(str[i]==’\\n’) break;} str[i]= ; sptr=str;

while(*sptr) putchar(*sptr ); }

54.以下程序从输入的10个字符串中找出最长的那个串及长度,请填空。 #include #include main()

{ char str[10][80], *sp; int i; for(i=0;i<10;i++) gets(str[i]); sp=str[0];

for(i=0;i<10;i++) if(strlen(sp)

55.以下函数用来在w数组中插入x。n所指向的是存储单元中存放在w数组中的字符个数。数组w中的字符已按从小到大的顺序排列,插入后数组w中的字符仍有序。请填空。 void fun(char *w, char x, int *n) { int i,p; p=0; w[*n]=x;

while(x>w[p]) p++;

for(i=*n;i>p;i--) w[i]= ;

w[p]=x; ++*n; }

56.函数my_cmp()的功能是比较字符串s和t的大小,当s等于t时返回0,否则返回s和t的第一个不同字符的ASCII码差值。即当s>t时返回正值,当s

{ if(*s==’\\0’) return (0); ++s; ++t; }

return( ); }

57.以下程序是把字符串中的内容按逆序输出,但不改变串中的内容,请填空。 void inverp(char *a) { if(! ) return; inverp(a+1);

printf(“%c”,* ); }

58.以下程序的功能是先输入20个人的姓名和他们的电话号码(七个数字),然后输入姓名,查找该人的电话号码,请填空。 #include #include

struct ph{char name[10]; char tel[8];}; main()

{ s[20];

void readin(struct ph *p);

void search(struct ph *p, char *x); char c[10]; readin(s);

printf(“请输入被查人的姓名:\\n”); gets( ); search(s,c); }

void readin(struct ph *p) { int i;

for(i=0;i<20;i++,p++)

{ printf(“请输入姓名:”); gets( ); printf(“请输入他的电话号码:”);gets( ); } }

void search(struct ph *p, char *x) { int i;

for(i=0;i<20;i++,p++) if(strcmp( )==0)

{ printf(“%s的电话号码是%s\\n”,x,p->tel);break;} if(i==3) printf(“找不到%s的电话号码!\\n”,x); }

59.下面的程序用来统计文件中字符的个数。请填空 #include main() { FILE *fp; long num=0;

if(fp=fopen(“fname.dat”,“r”)==NULL) { printf(“Can’t open file!\\n”); exit(0);} while {fgetc(fp); num++;} printf(“num=%d\\n”,num); fclose(fp); }

60.下面程序的作用是从磁盘文件stu.dat中读取N个学生的姓名、学号、成绩,然后在屏幕上显示输出。请将程序补充完整。 #include #define N 100 struct student { char name[20]; int no; int score; } stud[N]; main() { FILE *fp;

int i; if

{ printf(“Can not open file!\\n”); exit(0);} ; for(i=0;i

printf(“name :%s NO: %d score: %d\\n”,stud[i].name, stud[i].no, stud[i].score); fclose(fp); }

61.求主次对角线之和。 main()

{static int a[ ][3]={9,7,5,1,2,4,6,8}; int I,j,s1=0,s2=0; for(I=0;I<3;I++) for(j=0;j<3;j++) {if( ) s1=s1+a[I][j]; if( ) s2=s2+a[I][j]; }

printf(“%d\\n%d\\n”,s1,s2); }

三、判断题

1. C语言的一个特点是可以对计算机硬件进行操作( )

2. 在循环过程中,使用break语句和continue语句的作用是一样的( ) 3. 在函数的定义和调用过程中,形式参数和实在参数数目可以不一致( ) 4. 指针变量可以接收任何类型的值 ( )

5. 在C语言程序设计中,字符数组和字符串不是完全一样的概念( ) 6. 文件指针是结构体类型,用符号file来表示 ( ) 7. 选择结构(if语句)和循环结构都可以使用嵌套形式( ) 8. 在定义二维数组时,可以将该数组的两个维数全部省略( )

9. 逻辑运算符 && || ! 的运算顺序是 ! 优先于 && 优先于 || ( 10. 任何数组都可以实现整体使用操作( )

四、读程序,写出程序运行结果。

本文来源:https://www.bwwdw.com/article/jpo6.html

Top