填空题
1.设int a=1,b=2,c,de;执行c=(-a++)+(++b);d=(b--)+(++a)-a;e=(a/(++b))-(b/(--a));变量a的结果是【2】
2.有:char c='A'; printf("%d\n",c+1);则输出的结果为【66】
3.已知a=10, b=20,则表达式!a<b的值为【1】
4.C语言可以处理的文件类型是【文本文件和二进制文件】.
5.int a=12;执行a+=a-=a*a;语句后,a的值是【-264】
6.八进制是一种"逢八进一"的进制,十六进制是一种” 【逢十六进一】"的进制.
7.C语言的语句主要分为数据定义语句、【赋值】语句、函数调用语句、表达式语句、流程控制语句、复合语句、空语句、其它语句等8类.
8.设a=3,b=4,执行printf("%d,%d".,(a,b).(b,a));的输出是【4,3】
9.在C语言的运算符中,【关系】运算符和逻辑运算符是用"真"和"假"来表达结果.
10.设有定义语句" static int a[3][4]={{1},{2},{3}} ,a[2][1]的值为【0】
11. C语言源程序文件的后缀是【C】,经过编绎后生成文件的后缀是【OBJ】,经过连接后生成文件的后缀是.exe.
12. 设int x=10,y,z;执行y=z=x;x=y==z后,变量x的结果是【1】.
13. 在C语言中,如果除法运算有实数参与运算,得到一个【实】型结果.
14. 位运算符"^"是将参与运算的两个二进制数进行"异或"运算,如果二进制位相同,则值为【0】,否则为【1】.
15. 逻辑表达式3<2]-1&&4>3-!0的值为【1】
16. C语言符号集包括【英文字母】.【数字】和一些有特殊含义的标点符号.
17. C语言中的标识符只能由字母、数字和下划线3种字符组成,且第一个字符必须为【字母】或下划线.
18. 设a, b, c均为int型变量,且a = 3,b = 4, c = 5,则表达式: 'a'll b + c && b-c的值是【1】 .
19. C语言的字符集就是【ASCII】字符集. 'A'的ASCII值是【65】 .
20. s=O;i=0;执行语句while(s<12) {s+=i; i++;}后S=【15】, i=6.、
21. 已知a=10,b=20,则表达式!a<b的值为【1】 .
22.C语言程序中对文本文件的存取是以【字节】为单位进行的.
23. C语言源程序的语句分隔符是【,】.'\n'表示【换行】.
24. 将二进制数00000110和00001011进行&运算,结果为【00000010】.
25.已知a = 0 ,表达式a = 1? b = 1:b = O;执行后,b的值是【1】.
26. 语句printf("%%%%\n");的输出为【%%】
27. C程序开发的四个步骤是【编辑】 .【编译】链接和执行.
28. sizeof(float)是一个【整型】表达式.
29. 若定义char a[15]= "windows98";则执行语句printf("%s",a+7};后的输出结果是【98】.
30.定义变量int x = 1.20,则%d格式输出x的结果为【1】 .
31. 若w=1,x=2,y=3,z=4,则条件表达式w<x ? w :y <z ?y :z的结果为【1】.
32. 已知a=10,b=20,则表达式!a<b的值为【1】.
33. 表达式3.5+1/2的计算结果是【3.5】 .
34. 表达式10%3的结果是【1】.
35. 设int i=5;则循环语句While(i>=1)i--;执行后, i的值为【0】
36. 结构化设计中的三种基本结构是顺序结构、【分支结构】和循环结构.;
37. 逻辑运算符&&表示与操作,当其左边表达式为【假】时,右边的表达是不会进行运算的.
38.十进制转换成二进制可以采用除【2】取余的方式.
40. 在C语言的运算符中,【关系】运算符和逻辑运算符是用"真"和"假"来表达结果.
41. x=25,执行语句for(i=2;i<x/2;i++) if(x%i==O) break;后i的值为【5】
42. 将二进制数00000110和00001011进行&运算,结果为【00000010】 .
43. C语言中用Run或【CTRL+F9】运行程序.
44. 设x和y均为int型变量,且x=1,y=2,则printf( " % 3.1f” ,(1.O+x/y));的结果为【1.0】.
45. 设有int x=11;,则表达式(x++*2/3)的值是【7】.
46. 已知a = 0 ,表达式a = 1? b = 1:b = 0;执行后,b的值是【1】!
47. 一个C程序的执行是从本程序的【main】函数开始.
48. 定义变量int x = 1.20,则%d格式输出x的结果为【1】 .
49. 若已知a=10,b=20,则表达式a<b的值为【1】
50. 若有说明:char s1='\xff , s2='f;则变量s1,s2在内存中所占的字节数均为【1】.
51. 若有定义int x =7;则表达式x/=3;的值为【2】.
52. 十进制数14转换为二进制结果是【1110】.
53. 根据运算符进行运算需根据变量的个数可以将运算符分为单目运算符、双目运算符和【三目运算符】.
54. 各类计算机语言的发展历程大致为:先有【机器】语言,再有汇编语言,最后出现中级语言和高级语言.
55. 设x和y均为int型变量,且x=1,y=2,则printf( " % 3.1f ”,(1.0+x/y);的结果为【1.0】.
56. 设int i=1; char c='1";则条件表达式c= =1的值是【0】
57. 设p为整形指针,数组int a[10]的首地址为2000,设每个元素占2字节,数组赋值后则执行语句for(p=a;p<a+10;p+ +) printf("%d",*p);后p的值为[2020] .
58. C语言中标点符号中表示一条预处理命令开始的是 [#]
59.在进行除法运算时,当除数和被除数都为整数时,得到的结果也是一个[整数].
60.运算符" &&"表示与操作,当且仅当运算符两边的表达式结果都为真时其结果才为[真] ,否则结果为假.
61.C语言程序的注释可以出现在程序中的任何地方,一个行注释以[//]作为开始的标记.
62.在C语言中, [sizeof()]运算符可以求算出数据字节数.
判断题
1.do-while循环允许从循环体外部跳到循环体内部.(F)
2.break语句不能用于循环语句和switch语句之外的任何其他语句中.(T)
3.C程序的main函数可以有参数,但参数不能是指针类型.( F)
4.保存在内存单元中的数据就是变量的值.(T)
5.%x是格式符的一种,它可以适用于任何一种类型的数据.( F)
6.C程序中的一个变量可以被定义为两个或多个不同的类型.(F)
7.do-while语句构成的循环只能用break语句退出.(F)
8.对于一维数组,例如int Yrr[3];则Yrr[2]表示数组的第2个元素.(F)
9.在二维数组中,行指针是指向一维数组的指针变量.(T)
10.C语言中,赋值表达式加上分号就构成了赋值语句.(T)
11. printfi函数中,%c和%s都可以输出字符串.(F)
12. 宏定义可分为带参数的宏定义和不带参数的宏定义两类.(T)
13. &N指的是变量N的地址处所存放的值.(F)
14. C语言中,字符常量可以用单引号或双引号括起来.(T)
15. chYr*name[5]定义了一个一维指针数组,它有5个元素,每个元素都是指向字符数据的指针型数据.(T)
16. 数组中的元素可以通过数组名和下标来引用.(T)
17. C语言中的for语句可以用于循环次数已经确定的情况,但是不能用于循环次数不确定而只给出循环结束条件的情况.(F)
18. 十进制数10转换为二进制为1010.(T)
19. 逻辑运算符用于判断数据的真假其结果为"真"或"假".(T)
20. C语言中,二维数组中元素排列的顺序是:按行存放即在内存中先顺序存放第一行的元素,再存放第二行的元素.(T)
21. C程序的书写格式要求严格,区分大小写,并且一行内只能写一条语句.(F)
22. 将浮点型数据转换为整型数据时,小数点后的数会进行四舍五入.(F)
23. 如果函数类型不定义为空类型,即使在return后面没有表达式,而实际上函数也是有一个不确定的返回值的.(T)
24. C语言中的基本数据类型包括:整型变量、实型变量、字符型变量.(T)
25. 若Y为一维数组名,则*(Y+i)与Y[i等价.(T)
26. continue语句只结束本次循环,而不是终止整个循环的执行.break语句则是结束整个循环过程,不再判断执行循环的条件是否成立. (T )
27. 用fopen("file1",r)方式打开的文件可进行修改.(F)
28. 数组属于构造类型的数据.( T)
29. C语言中字符串的结束符是'\0'.(T )
30. 当#include后面的文件名用双引号""括起,仅搜索当前目录.(F)
31.C语言中,一个字符型数据与整型数据可以互相赋值.(T)
32.数组初始化的常见方式有三种:直接对数组中的所有元素赋值、只对数组中的一部分元素赋值、对数组全部元素赋值但不指定长度.(T)
33.C语言中的标识符以字母或下划线开头,可跟任何字符.(F)
34. 字符串"china"在内存中占据的存储空间是5个字节.(F)
35. 在C语言中,逻辑表达式可以包含多个逻辑运算符.(T)
36. 变量虽有不同的数据类型,但它们所占内存的大小是一样的.(F)
37. C语言中,用户所定义的标识符中大、小字母代表不同标识.(T)
38. 局部变量只有当它所在的函数被调用时才会被使用,而当函数调用结束时局部变量就会失去作用.(T)
39. 被定义为指向某结构体类型数据的指针变量,即可以指向具有该类型的变量,又可以指向它其中的一个成员.(F)
40. C语言中的标识符只能由字母、数字和下划线三种字符组成,且第一个字符必须为字母或下划线.(T)
41. 数组元素的下标用于表示元素在数组中的位置序号,该下标是从1开始的.(F)
42. 结构体类型只有一种.(F)
44. 可以在定义枚举类型时对枚举元素进行初始化.(T)
45. 宏替换就是字符替换,不能进行任何计算.(T)
46. 数组的下标范围是O-[数组长度-1].(T)
47. switch后面括弧内的"表达式"的值与某一个case后面的"常量表达式"的值相等时,就执行此case后面的语句;若所有case中的"常量表达式"的值都没有与"表达式"的值匹配的,就执行defYult后面的语句.(T)
48. C语言中的标识符只能由字母、数字和下划线三种字符组成,且第一个字符必须为字母或下划线(T)
49. unsigned和void都是C的保留字.(T)
50. char[ ]="chinese";字符数组长度为7.(F)
51. 定义在main函数后的任何函数都需在main中进行函数声明.(F)
51. 对C语言中用到的任何一个变量都要规定其类型.(T)
52. #include命令只能指定包含一个头文件.(T )
53. C语言不能嵌套定义函数,也不可以嵌套调用函数,也就是说,在调用一个函数的过程中,不可以调用另一个函数(F)
54. C语言中,字符常量可以用单引号或双引号括起来.(T)
55. 在C语言中,同一种数据类型在不同的编译系统中所占空间不一定相同.(T)
56. C程序中的main函数必须放在整个程序的最前头.(F)
57. C程序是由函数构成的,每一个函数完成相应独立的功能.(T)
58. printf函数的格式控制串之后的所有参数的前面都必须有&.(F)
59. 被定义为指向某结构体类型数据的指针变量,即可以指向具有该类型的变量,又可以指向它其中的一个成员.(F)
60. 当#include后面的文件名用尖括号<>括起,直接按系统设定的标准方式搜索目录.(T)
61. 如果函数类型不定义为空类型,即使在return后面没有表达式,而实际上函数也是有一个不确定的返回值的(T)
62. 定义在main函数后的任何函数都需在main中进行函数声明.(F)
63. &N指的是变量N的地址处所存放的值.(F)
64. C语言中直到型循环结构为:do循环体while(表达式);但这种循环是当表达式为真时反复执行循环体,表达式为假时结束循环.(T)
65. 共用体变量的各个成员所占内存单元是相同的,都从同一地址开始.(T)
66. C语言中数据类型只有整型、实型和字型.(F)
67. C语言中的标识符只能由字母、数字和下划线三种字符组成,且第一个字符必须为字母或下划线.(T)
68. C语言规定简单变量做实参时,它与对应形参之间的数据传递方式是地址传递.(F)
69. 对C语言中用到的任何一个变量都要规定其类型.(T)
70. 变量的指针其含义是指该变量的一个标志.(F)
71. C语言中的类型转换可分为隐式类型转换和强制类型转换.(T )
72.C语言中数据类型只有整型、实型和字型. (F )
73.当需要接受用户从键盘输入的含有空格的字符串时,应使用gets()函数.(T)
74.数组名的命名较为特别,它不符合标识符的命名规范.(F)
75.switch语句中的每个case总要用break语句.(F)
76.do-while循环允许从循环体外部跳到循环体内部.( F)
77.对于某一指针变量可以接收任何类型的值.(F)
78.计算机使用特定的整数编码来表示对应的字符我们通常使用的英文字符编码是ASCII.( F)
79.宏替换就是字符替换,不能进行任何计算.(T)
选择题
- 在执行下述程序时,若从键盘输入6和8,则结果为(B).
main()
{int a,b,s;
scanf("%d%d" ,&a,&b);
s=a ;
if(a<b)
s=b;
s*=s;
printf("%d",s); }
(A)36
(B)64
(C)48
(D)以上都不对
2. C语言中关于内存分配,下列描述中错误的是[ ] .
(A)malloc()函数用于动态分配堆内存
(B)free()函数用于释放堆内存
(C)栈空间上的内存由编绎器自动分配释放
(D)堆空间.上的内存如果程序员不释放,则内存永远都无法回收
3.C语言联合类型在任何给定时刻( ).
(A)所有成员一直驻留在结构中
(B)只能有一个成员驻留在结构中
(C)部分成员驻留在结构中
(D)没有成员驻留在结构中
4.运行下面程序时,若从键盘输入数据为"6,5,7<CR> ",则输出结果是[ ] .
#include <stdio.h>
void main( )
(int a,b,c;
scanf("%d,%d,%d" ,&a,&b,&c);
if (a>b)
if(a>c)
printf("%dn",a);
else
printf("%dn",c);else
if (b>c)
printf("%d(n",b);else
printf("%d(n",c);
(A)5
(B)6
(C)7
(D)不定值
5.关于fgets()函数下列描述中正确的是( ).
(A)从文件fp中读取长度为n的字符串存入str指向的内存
(B)从文件fp中读取长度不超过n-1的字符串存入str指向的内存
(C)从文件fp中读取n个字符存入str指向的内存
(D)从str读取至多n个字符到文件fp中
6.有以下程序:
#include <stdio.h>int fun(int a,int b)(if(b==0)return a;
else return(fun(--,--b));
main(l
printf("%d/n",fun(4,2));
程序的运行结果是().
(A)1 (B)2 (C)3 (D)4
7.若有定义语句:int x= 10; ,则表达式x- =x+ x的值为(.
(А)0 (B)-20 (C)-10 (D)10
8.以下程序的输出结果是【】 .
#include<stdio.h>
void main()
{printf("%d\n",NULL))
(A)不确定的 (B)0 (C)-1 (D)1
9.
有以下程序:
#include <stdio.h>
main(){
int c=0,k;
for(k=1;k<3;k+ +) switch(k) [ default: c+ =k;case 2:c+ +;break;
case 4:c+ = 2;break; .
printf("%dn",c);
程序运行后的输出结果是()
(А)9 (B)7 (C)5 (D)3
10.C语言中可处理的文件类型是( ).
(A)文本文件和数据文件
(B)文本文件和二进制文件
(C)数据文件和_进制文件
(D)数据代码文件
11.以下说法中正确的是[ ] .
(A)C语言程序总是从第一个的函数开始执行.
(B)在C语言程序中,要调用的函数必须在main()函数中定义
(C)语言程序总是从main()函数开始执行.
(D)C语言程序中的main(函数必须放在程序的开始部分.
12.有以下程序段:
int n,t=1,s=0;
scanf("%d",&n);
do
{s=s+t;t=t-2;
}while(t!=n);
为使程序段不陷入死循环,从键盘键入的数据应该是().
(A)任意正奇数
(B)任意负偶数
(C)任意正偶数
(D)任意负奇数
13.设有如下程序段:
int x= 2004,y= 2008;
printf("%d\n",(x.y));
则以下叙述中正确的是
(A)输出值为2004
(B)输出值为2008
(C)运行时产生出错信息
(D)输出语句中格式说明符的个数少于输出项的个数,不能正确输出
14.有以下程序(strcat函数用以连接两个字符串):
#include <stdio.h>
#include <string.h>
main()( char a[20]= " ABCD(0EFG0",b[]= "IJK";
strcat(a,b);printf("%s)n",a);
程序运行后的输出结果为()
(A)ABCDE\0FG\0IJK
(B)ABCDIJK
(C)JK
(D)EFGIJK
15.有以下程序:
# include < stdio.h>
main()
( unsigned char a=2, b=4, c=5, d;
d=alb;d&= c; printf("%d(n", d); ]
程序运行后的输出结果是0.
(А)3
(B)4
(C)5
(D)6
16.以下选项中,不能作为合法常量的是0.
(А)12340
(B)123400
(C)1.234e0.5
(D)1.234
17.有以下程序:
#include <stdio.h>
main(
{ int a=0,b=0,c=0,d=0;
if(a=1) b=1;c=2;
else d=3;
printf("%d,%d,%d,%d\n",a,b,c,d);
程序输出().
(A)1,1,2,0 (B)0,0,0,3 (C)编译有错 (D)0,1,2,0
18.若在定义语句int a,b,c,*p= &c;之后,接着执行以下选项中的语句,则能正确执行的语句是0.
(A)scanf("%d",a,b,c);
(B)scanf("%d%d%d",a,b,c);
(C)scanf("%d", &p);
(D)scanf("%d", p);
19.#include<stdio.h>
void main()
{ char ch[80]= "123abcdEFG* &";int j;long s=0;
puts(ch);|
for(j=0;ch[j]>\1& j++)
if(ch[j]>=’A’&&ch[j]<=’Z’)
Ch[j]=ch[j]+’e’-‘E’ ;
puts(ch);
}
该程序的功能是[ ] .
(A)测字符数组ch的长度
(B)将数字字符串ch转换成十进制数
(C)将字符数组ch中的小写字母转换成大写
(D)将字符数组ch中的大写字母转换成小写
20.设变量x和y均已正确定义并赋值以下if语句中,在编译时将产生错误信息的是0.
(A)if(x++);
(B)if(x>y && y!=0);
(C)if(x>0)x --else y+ +;
(D)if(y<0);)else x+ +;
21.关于结构体作为函数参数;下列描述中错误的是( ).
(A)结构体可以作为函数参数
(B)结构体数组可以作为函数参数
(C)结构体指针可以作为函数参数
(D)结构体成员变量不可以作为函数参数
22. 设有定义int a;float b;,执行scanf("%2d%f" ,&a,&b);语句时,若从键盘输入876<空格>854.0<回车>,a和b的值分别是().
(A)876和543.000000
(B)87和6.000000
(C)87和543.000000
(D)76和543.000000
23.有以下程序段:
#include <stdio.h>
int a, b, c;
a=10; b=50; c=30;
if(a>b)a=b, b=c; c=a;
print("a=%d b=%d c=%d\n",a, b, c);程序的输出结果是().
(A)a=10 b=50 c=30
(B)a=10 b=50 c=10
(C)a=10 b=30 c=10
(D)a=50 b=30 c=50
24.C语言中,合法的长整型常数是[ ] .
(A)’\t’
(B)A
(C)65|
(D)At
25.假设有以下定义:
typedef union
{long i;
int k[5];
char c;
) DATE;
struct date
int cat;
DATE cow;
double dog;
}too;
DATE max;
那么语句printf("%d",sizeof(struct date)+sizeof(max));的执行结果是().
(A)52
(B)30
(C)18
(D)8
26.以下叙述中正确的是[ ] .
(A)在不同的函数中可以使用相同名字的变量
(B)函数中的形式参数是全局变量
(C)在一个函数内定义的变量只在本函数范围内有效
(D)在一个函数内的复 合语句中定义的变量在本函数范围内有效
27.下面程序的运行结果是(.
#include<stdio.h>
main(
{static char a]="Languagef" ,b]=' programe";char *p1,*p2; int k;
p1=a; p2=b;|
for(k=0;k<=7; k++)
if(*(p1+k)==i *(p2+k) printf(" %c",*(p1+k); }
(A)g a e
(B)ga
(C)Language
(D)有语法错
28.有以下程序:
#include < stdio.h>
void fun( int a, int b )
{int t;
t=a; a=b; b=t
main()
{int c[10]=(1,2,3,4,5,6,7,8,9,0), i;
for (i=0; i<10; i+=2) fun(c[i], c[i+1]);
for (i=0;i<10; i++) printf("%d," c[ï]);
printf("n");
程序运行的结果是
(А)1,2,3,4,5,6,7,8,9,0,
(B)2,14,3,6,5,8,7,0,9,
(C)0,9,8,7,6,5,4,3,2,1,
(D)0,1,2,3,4,5,6,7,8,9,
29.有以下程序:
#include < stdio.h>
fun(int x, int y)
{static int m=0, i=2;
i+=m+1; m=i+x+y; return m;
}
main()
{int j=1, m=1, k;
k=fun(j,m);printf("%d,",k);
k=fun(j,m); printf("%d\n",k);
}
执行后的输出结果是()
(A)5, 11
(B)5, 5
(C)11, 11
(D)11, 5
30.有以下程序:
#include < stdio.h>
int fun (int x, int y)
{if(x!=y) return ( (x+y) /2 );else return (x);
}
main0
{int a=4, b=5, c=6;
printf( "%d\n" , fun(2*a,fun(b,c);
(A)6
(B)3
(C)8
(D)12
31.有以下程序:
#include <stdio.h>
void f(int *p,int *q);
main0 { int m=1,n=2,*r= &m;
f(r,&n);printf("%d,%d",m,n);
}
void f(int *p.int *q) {p=p+1;*q=*q+1;}
程序运行后的輸出結果是0.
(A)1,3
(B)2,3
(C)1,4
(D)1,2
32.设有以下函数:
void fun(int n,char *s){ .... }
则下面对函数指针的定义和赋值均正确的是0.
(A)void (*pf)0; pf=fun;
(B)void *pf0; pf=fun;
(C)void *pf); *pf=fun;
(D)void(* pf(int,char); pf= &fun;
33.下列程序的输出结果是[ ] .
#include < stdio.h>
void main0
{char b[]= "ABCDEFG";char p=0;
while(p<7)
putchar(b[p+ +]);
putchar(‘\n’);
}
(A)GFEDCBA
(B)BCDEFG
(C)ABCDEFG
(D)GFEDCB
34.数字字符0的ASCII值为48,若有以下程序
Main(){char a=绠’1’绠,b=绠’2’绠;
printf(" %c,",b+ +);|
printf("%d\n",b-a);
}
程序运行后的输出结果是().
(A)3,2
(B)50,2
(C)2,2
(D)2,50
35.以下选项中合法的字符常量是[ ]。
(A)"B"
(B)’\\010’
(C)68
(D)D
36.以下程序的输出结果是[ ] .
void main0)
{static int а[4][4]=((1,3,5),(2,4,6),(3,5,7));
printf"%d%d%d%d\n,a[0][3],a[1][2],a[2][1],a[3][0];)
(A)0650
(B)1470
(C)5430
(D)输出值不定
37.执行下面程序时,若从键盘输入"2<CR> ".则程序的运行结果是[ ] .
#include <stdio.h>
void main()
( int k; char cp;
cp=getchar( );
if(cp>=’0’ && cp<=’9’)
k=cp-‘0’;
else if (сp>=’a’ &&cp<=’f’)
k=cp-‘a’+10;
else k=cp-‘A’+ 10;
printf("%d\n",k);
}
(A)2
(B)4
(C)1
(D)10
38.以下叙述中错误的是0.
(A)用户所定义的标识符允许使用关键字
(B)用户所定义的标识符应尽量做到"见名识意"
(C)用户所定义的标识符中,大、小写字母代表不同标识
(D)用户所定义的标识符必须以字母或下划线开头
39.有以下程序
#include < stdio.h>
main()
(int n,*p=NULL;
*p=&n;
printf("Input n:"); scanf("%d",&p);
printf(" output n:”;); printf("%d\n",p);
}
该程序试图通过指针p为变量n读入数据并输出,但程序有多处错误,以下语句正确的是() (A)int n,*p=NULL;
(B)*p=&n;
(C)scanf("%d" ,&p)
(D)printf("%d\n",p);
40.有以下程序:
#include <stdio.h>
void swap(char *x, char *y)
{char t;
t=*x; *x=*y; *y=t;}
main()
{ char *s1="abc", *s2="123";¡
swap(s1,s2); printf("%s,%sn",s1,s2);
}
程序执行后的输出结果是()
(A)321,cba
(В)abc,123
(C)123,abc
(D)1bc,a23
41.#include <stdio.h>
struct st
( int x,y;)data[2]=(1,10,2,20);j
main0i struct st *p=data;
printf("%d,",p->y); printf("%d/n",(+ +p)->x);
}
程序的运行结果是()
(A)10,1
(B)20,1
(C)10,2
(D)20,2
42.有以下程序:
#include < stdio.h>
main()
{int a[]={1,2,3,4},y,*p= &a[3];
--p; y=* p;printf("y=%d(n",y);
}
程序的运行结果是()
(A)y=0
(B)y=1
(C)y=2
(D)y=3
43.下列语句组中,正确的是()
(A)char *s;s= "Olympic";
(B)char s[7];s="Olympic";
(C)char *s;s=("Olympic");
(D)char s[7];s=("Olympic");
44.下面程序的输出的是[ ] .
#include <stdio.h>
void main()
{int x=10,y=3;
printf("%d\n",y=x/y);
(A)0
(B)1
(C)3
(D)不确定的值
45.有以下程序:
#include < stdio.h>
void fun(int *s,int n1.int n2){
int i,j.t;
i=n1;j=n2;
while(i<j)t= sij:sti]=sj;s:jl=ti+ +--}
main(){
int a[10]={1,2,3,4,5,6,7,8,9,0,.k;
fun(a,0,3); fun(a,4,9); fun(a,0,9);
for(k=0;k< 10;k+ + )printf("%d",a[k]); printf("\n");
程序的运行结果是().
(A)9.88E+08
(B)4.32E+09
(C)5.68E+09
(D)98760051234
46.下列选项中,哪个函数可以将数据以二进制形式存放到文件中( ).
(A)fprintf0
(B)fread()
(C)fwrite()
(D)fputc0
47.设已有定义:float x;则以下对指针变量p进行定义且赋初值的语句中正确的是
(A)int *p=(float)x;
(B)float *p=&x;
(C)float p=&x;
(D)float *p=1024;
48.有以下程序:
#include < stdio.h>
Main()
{int a=1,b=0;
printf(" %d,",b=a+b);
printf(' '%d\n",a=2*b);
(A)1,2
(B)1,0
(C)3,2
(D)0,0
49.下面程序的输出是[ ] .
int fun3(int x)
{static int a=3;
a+=x;
return(a); ]
void main(
(int k=2,m=1,n;
n=fun3(k);
n=fun3(m);
printf("%d(n",n);
(A)3
(B)4
(C)6
(D)9
50.有以下程序
#include < stdio.h>
#define N 4
void fun(int a[[N],int b[]) int i;
for(i=0;i· <N;i+ +) b[i]=a[i)[i];
}
main(){ int x[][N]={{1,2,3},{4},{5,6,7,8},{9,10}},y[N],i;
fun(x,y);
for(i=0;i<N;i+ +)printf("%d,"y[i]);
printf("\n");
}
(A)1,2,3,4,
(B)1,0,7,0,
(C)1,4,5,9,
(D)3,4,8,10,
51.若有以下说明和语句,请选出哪个是对c数组元素的正确引用()
int c[4][51](*cp)[5];
cp=c;
(A)cp+1
(B)*(cp +3)
(C)*(cp +1)+3
(D)*(* cp+2)
52.下列选项中不属于结构化程序设计原则的是().
(A)可封装
(B)自顶向下
(C)模块化
(D)逐步求精
53.若有以下定义和语句:char c1=’b’;,c2=’e’; printf("%d,%c\n",c2-c1,c2-‘a’+’A’);那么输出结果是[ ]
(A)2,M
(B)3,E
(C)2,E
(D)输出项与对应的格式控制不一致,输出结果不确定
54.有以下程序:
#include < stdio.h>
main()
{int i,j,m=1;
for(i=1;i<3;i++)
{for(j=3;j>0;j-- )
{ if(i*j> 3) break;
m*=i*j;}}
printf("m= %d\n",m);
}
程序运行后的输出结果是0.
(A)m=4 (B)m=2 (C)m=6 (D)m=5
55.以下叙述中正确的是()
(A)当对文件的读(写)操作完成之后,必须将它关闭,否则可能导致数据丢失
(B)打开一个已存在的文件并进行了写操作后,原有文件中的全部数据必定被覆盖
(C)在一个程序中当对文件进行了写操作后,必须先关闭该文件然后再打开,才能读到第1个数据
(D)C语言中的文件是流式文件,因此只能顺序存取数据
56.请选出合法的C语言赋值语句.
(A)a=b=58
(B)i++;
(C)a=58,b=58
(D)k=int(a+b);
57.若有函数调用语句:fun(a+b, (x,y), fun(n+ k,,(a,b));在此函数调用语句中实参的个数是[ ]
(A)3
(B)4
(C)5
(D)6
58.以下程序的输出结果是[ ] .
#include <stdio.h>
void main()
{int i,a[10];
for(i=9;i> =0;i--) a[i]=10-i;
printf("%d%d%d", ,a[2],a[5],a[8]);
}
(A)258
(B)741
(C)852
(D)369
59.有以下程序
#include <stdio.h>
void f(int *p,int *q);
main() ( int m=1,n=2,*r= &m;
f(r,&n);printf("%d,%d",m,n);}
void f(int *p,int *q) (p=p+1;*q=*q+1;)
程序运行后的输出结果是()
(A)1,3
(B)2,3
(C)1,4
(D)1,2
60.静态链表中的指针表示的是( ).
(A)内存地址
(B)数组下标
(C)下一元素地址
(D)左、右结点地址
61.下列程序的输出结果是[ ]
#include <stdio.h>
void main()
(char b[]= "ABCDEFG";
char p=0;
while(p<7)
putchar(b[p+ +]);
putchar(‘\n’);
}
(A)GFEDCBA
(B)BCDEFG
(C)ABCDEFG
(D)GFEDCB
62.有以下程序:
#include <stdio.h>
int fun (int x, int y)
{if (x!=y) return ((x+y)/2 );
Else return (x );
main()
{int a=4, b=5, c=6;
printf( "%dn" , fun(2*a,fun(b,c));
}
(A)6
(B)3
(C)8
(D)12
63.假定有以下变量定义:int k=7,x= 12;那么能使值为3的表达式是[ ] .
(A)x%=(k%=5)
(B)x%=(k-k%5)
(C)x%=k-k%5
(D)(x%=k)-(k%=5)
64.C语言联合类型在任何给定时刻( )
(A)所有成员一直驻留在结构中
(B)只能有一个成员驻留在结构中
(C)部分成员驻留在结构中
(D)没有成员驻留在结构中
65.若有下面的说明和定义则变量a所占内存字节数是()
union U
{char st[4];
int i;
long l;
};
struct A
{int c;
union U u;
}a;
(A)4
(B)5
(C)6
(D)8
66.有以下程序:
#include <stdio.h>
main()
{int i,j,m=55;
for(i=1;i<=3;i++)
for(j=3;j<=i;j+ +)m=m%j;
printf("%d\n",m);
}
程序的运行结果是()
(A)0
(B)1
(C)2
(D)3
67.有以下程序:
#include<stdio.h>
#include < stdlib.h>
int fun(int n)
int *p;
p = (int*)malloc(sizeof(int));
*p=n;return *p;
}
main0
{int a;
a = fun(10);
printf("%dn",a+ fun(10));
}
程序的运行结果是()
(А)0
(B)10
(C)20
(D)出错
68.已知字母A的ASCII码为十进制的65,下面程序的输出是[ ]
#include <stdio.h>
void main()
(char ch1,ch2;
ch1=’A’+’5’-‘3’;
ch2=’A’+’6’-‘3’;
printf(" %d,%c\n" ,ch1,ch2);
}
(A)67,D
(B)B,C
(C)C,D
(D)不确定的值
69.以下程序的执行结果是[ ] .
#include < stdio.h>
void main( )
{ int x=1,y=0;
switch (x)
[
case 1:
switch (y)
{
case 0:printf("first\n”);break;
case 1:printf("secondl\n” );break;
}
case 2:printf("third\n");
}}
(A)first second
(B)first third
(C)frist third
(D)second third
70.在一个C源程序文件中所定义的全局变量,其作用域为().
(A)由具体定义位置和extern说明来决定范围
(B)所在程序的全部范围
(C)所在函数的全部范围
(D)所在文件的全部范围
71.若有以下定义和语句:double r= 99, *p= &r;*p=r;则下列描述中正确的是[ ] .
(A)两处的*p含义相同,都说明给指针变量p赋值
(B)在" double r=99,*p= &r"中,把r的地址赋值给了p所指向的存储单元
(C)语句*p=r把变量r的值赋给指针变量p
(D)语句*p=r取变量r的值放回r中
72.定义无符号整数类为UInt,下面可以作为类UInt实例化值的是()
(A)-369
(B)369
(C)0.369
(D)整数集合{1,2,3,4,5}
73.要求以下程序的功能是计算:s=1+1/2+ 1/3+ ..+1/100
Main()(
int n; float s;
s=1.0;
for(n=100;n> 1;n--) s=s+ 1/n;
printf("%6.4f)n",s);
程序运行后输出结果错误导致错误结果的程序行是()
(A)s=1.0;
(B)for(n=100; n> 1;n--)
(C)s=s +1/n;
(D)printf("% 6.4fn ",s);
74.以下程序输出的结果是[ ] .
#include <stdio.h>
void main( )
{ int a[ ]=(1,2,3,4,5),i,j,s=0;
for(i=0;i<5;i+ +) s=s*10+ a[i];
printf("s=%d\n",s);
}
(A)s=12345
(B)s=1 2 3 4 5
(C)s= 54321
(D)s=5 4 3 2 1
75.定义変量int a, double d,则表达式a + d的数据类型 [ ] .
(A)char
(B)int
(C)float
(D)double
76.有以下程序:
void ss(char *s,char t)
{while(*s)
{if(*s= =t)*s=t-哽a哽+哽A哽;
S++;}}
main()
{char str1[100]=" abcddfefdbd",c=哽d哽;
printf("%s\n",str1);}
程序运行后的输出结果是().
(A)ABCDDEFEDBD
(B)abcDDfefDbD
(C)abcAAfefAbA
(D)Abcddfefdbd
77.有以下程序段:
struct st
{int x;int *y;} *pt;
int a[]={1,2},b[]={3,4};
struct st c[2]={10,a,20,b};
pt=c;
以下选项中表达式的值为11的是()
(A)*pt->y
(B)pt->x
(C)++pt->x
(D)(pt++)->X
78.有以下程序:
main()
{
int a=0,b=0,c=0,d=0;
if(a=1) b=1;c=2;
else
d=3;
printf("%d,%d,%d,%dn",a,b,c,d);
}
程序输出结果是()
(A)0,1,2,0
(B)0,0,0,3
(C)1,1,2,0 ,
(D)编译有错
79.下面程序段的运行结果是()
char *p=" abcdefgh";
p+=3;
printf("%dn" ,strlen(strcpy(p,"ABCD"));
(A)8
(B)12
(C)4
(D)7
80.若有下面的说明和定义则sizeof(struct aa)的值是( ).
struct aa
int r1;
double r2;
float r3;
union uu
{
char u1[5];
long u2[2];
}ua;
} mya;
(A)30
(B)29
(C)24
(D)32
81.以下数组定义中错误的是()
(A)int x[2][3]={1,2,3,4,5,6};
(B)int x[][3]={0};
(C)int x[][3]={{1,2,3},{4,5,6}};
(D)int x[2][3]={{1,2},{3,4},{5,6}};
82.表示关系x<=y< =z的C语言表达式为[ ] .
(A)(X< =Y)&&(Y<=Z)
(B)(X<=Y)AND(Y<=Z)
(C)(X<=Y<=Z)
(D)(X<=Y)&(Y<=Z)
83.字符’0’的ASCII码的十进制数为48,且数组的第1个元素在低位,则以下程序的输出结果是( ).
#include < stdio.h>
void main()
{
union
{
int i[2];
long k;
char c(4);
}r,*s=&r;
s->i[0]=0x39;
s->i[1]=0x38;
printf("%cIn",s-> c[0]);
}
(A)39
(B)9
(C)38
(D)8
84.当调用函数时,实参是一个数组名,则向函数传送的是[ ] .
(A)数组的长度
(B)数组的首地址
(C)数组每一个元素的地址
(D)数组每个元素中的值
85.在C语言中,只有在使用时才占用内存单元的变量,其存储类型是()
(A)auto和register
(B)extern和register
(C)auto和static
(D)static和register
86.有以下程序:
#include <stdio.h>
#include <string.h>
main(){ char str[][20]=("One*World","one*Dream!"), *p=str[1];
printf("%d," ,strlen());printf("%s(n",p);
}
程序运行后的输出结果是()
(A)9,One*World
(B)9,One *Dream!
(C)10,One*Dream!
(D)10,One*World
87.C语言联合类型在任何给定时刻( ). .
(A)所有成员- -直驻留在结构中
(B)只能有一个成员驻留在结构中
(C)部分成员驻留在结构中
(D)没有成员驻留在结构中
88.下列选项中哪一个是取值运算符[ ]
(A)*
(B)&
(C)#
(D)$
89.设有以下函数:
void fun(int n,char *s){ .... }
则下面对函数指针的定义和赋值均正确的是().
(A)void (*pf)(); pf=fun;
(B)void *pf(); pf=fun;
(C)void *pf(); *pf=fun;
(D)void(*pf)(int,char); pf= &fun;
90.下列选项中,哪个函数可以将数据以二 进制形式存放到文件中( ).
(A)fprintf()
(B)fread()
(C)fwrite()
(D)fputc()
91.C源程序中不能表示的数制是().
(A)十六进制
(B)八进制
(C)十进制
(D)二进制
92.下列程序的输出结果是().
#include "stdio.h"
#define N 3
#define M 3
void fun(int a[M][N])
{printf("%d\n",*(a[1]+ 2));}
main()
{int a[M][N];
int i,j;
for(i=0;i<M;i++)
for(j=0;j<N;j+ +)
a[i][j]=i+j-(i-j);
fun(a);}
(А)3
(B)4
(C)5
(D)6
93.若有定义语句:double a, *p=&a;以下叙述中错误的是().
(A)定义语句中的*号是一个间址运算符
(B)定义语句中的*号是一个说明符
(C)定义语句中的p只能存放double类型变量的地址
(D)定义语句中,*p= &a把变量a的地址作为初值赋给指针变量p
94.有如下嵌套的if语句:
if(a<b) if(a<c)k=a;
else k=c;
else
if(b<c)k=b;
else k=c;
以下选项中与上述if语句等价的语句是()
(A)k=(a<b)?a:b;k=(b<c)?b:c;
(B)k=(a<b)((b<c)?a:b):(b> c)?b:c);
(C)k=(a<b)?((a<c)?a:():(b<c)?b:c);
(D)k=(a<b)?a:b;k=(a<cJ?a:c;
95.将二进制数00001011进行》位运算,将其结果转换为十进制是[ ]
(A)101
(B)1
(C)11
(D)5
96.若给定条件表达式(M)?(a+ +):(a--)则下列选项中和表达式M等价的是[ ]
(A)(M==0)
(B)(M==1)
(C)(M!=0)
(D)(M!=1)
97.若变量已正确定义,在if (W) printf("%d\n" ,k );中,以下不可替代W的是0.
(A)a<>b+c
(B)ch=getchar()
(C)a==b+c
(D)a++
98.若有以下说明和语句,请选出哪个是对c数组元素的正确引用()
int c[4][5],(*cp)[5];
cp=c;
(A)cp+1
(B)*(cp +3)
(C)*(cp +1)+3
(D)*(* cp+2)
99.假定有以下变量定义:int k=7,x=12;那么能使值为3的表达式是()
(A)x%=(k%=5)
(B)x%=(k-k%5)
(C)x%=k-k%5
(D)(x%=k)-(k%=5)
100. 设有定义:int n1=0,n2,*p=&n2,*q=&n1;,以下赋值语句中与n2=n1;语句等价的是().
(A)*p=*q;
(B)p=q;
(C)*p=&n1;
(D)p=*q;
101.有以下程序:
#include <stdio.h>
main()
{int a=(2,3,5,4)i;
for(i=0;i<4;i+ +)
switch(i%2)
{ case 0: switch(a[i]%2)
{ case 0:a[i] + +;break;
case 1:a[i]--;
} break;
case 1:a[i]=0;
}
for(i=0;¡ <4;i+ +) printf("%d ",a[i]); printf("n");
程序运行后的输出结果是()
(A)0 3 0 4
(B)2 0 5 0
(C)3 3 4 4
(D)3 0 4 0
102.以下程序的运行结果是()
int k=0;
void fun(int m)
{m+ =k;k+ =m;printf("m=%d k=%d ",m,k++);}
main()
{int i=4;
fun(i+ +); printf("i=%d k=%d\n",i,k);
}
(A)m=4k=5i=5k=5
(B)m=4k=4i=5k=5
(C)m=4k=4i=4k=5
(D)m=4k=5i=4k=5
103.C语言可执行程序的开始执行点是[ ].
(A)程序中第一可执行语句
(B)程序中第一个函数.
(C)程序中的main函数.
(D)包含文件中的第一个函数.
104.有以下程序段: .
#include < stdio.h>
int i, n;
for(i=0;i<8; i++ )
{n= rand) % 5;
switch (n)
{case 1:
case 3: printf("%d \n", n); break;
case 2:
case 4: printf(" %d \n", n); continue;
case 0: exit(0);|
}
printf("%d \n",n);
}
以下关于程序段执行情况的叙述,正确的()
(A)for循环语句固定执行8次
(B)当产生的随机数n为4时结束循环操作
(C)当产生的随机数n为1和2时不做任何操作
(D)当产生的随机数n为0时结束程序运行
105.执行下列程序段后的输出结果是[ ].
intx=1,y=1,z=1;
x+=y+=z;
printf("%d\n".x<y?y:x);
(A)3
(B)2
(C)1
(D)4
106.关于C语言的rewind()函数,下列描述中正确的是( ).
(A)使位置指针重新返回到文件的开头
(B)将位置指针指向文件中所要求的特定位置
(C)使位置指针指向文件的末尾
(D)使位置指针自动移至下一个字符位置
107.下列选项中,哪一项不是C语言中的位运算符[ ]
(A)&
(B)||
(C)~
(D)
108.假设a、b、c、 d、m、n均为int型变量,且a=5、b=6、 c=7、d=8、 m=2、 n=2,那么逻辑表达式(m=a>b)&&(n=c> d)运算后,n的值为[ ].
(A)0
(B)1
(C)2
(D)3
109.关于C语言的rewind()函数,下列描述中正确的是( ).
(A)使位置指针重新返回到文件的开头
(B)将位置指针指向文件中所要求的特定位置
(C)使位置指针指向文件的末尾
(D)使位置指针自动移至下一个字符位置
110.有以下程序:
#include<stdio.h>
int fun(int x,int y)( if(x! =y)return((x+y)/2);
else return(x);
main(){ int a=4,b=5,c=6;
printf(" %d\n" ,fun(2*a,fun(b,c)));
程序运行后的输出结果是().
(A)3
(B)6
(C)8
(D)12
111.在C程序中,可把整型数以二进制形式存放到文件中的函数是( ).
(A)重新打开文件
(B)使文件位置指针重新回到文件末尾
(C)使文件位置指针重新回到文件的开始位置
(D)返回文件长度值
112.请阅读下面的程序选择正确的输出结果. [ ]
void main()
{
printf("%d",null);
}
0
(A)0
(B)变量无定义
(C)-1
(D)1
113.下述共同体变量x所占用内存字节数为( ).
union exp
{
int i;
float j;
double k;
}x;
(A)16个
(B)12个
(C)8个
(D)随机而定
114.以下叙述中错误的是().
(A)可以通过typedef增加新的类型
(B)可以用typedef将已存在的类型用一个新的名字来代表
(C)用typedef定义新的类型名后,原有类型名仍有效
(D)用typedef可以为各种类型起别名,但不能为变量起别名
115.下列叙述中正确的是(). .
(A)在switch语句中,不一定使用break语句
(B)在switch语句中必须使用default
(C)break语句必须与switch语句中的case配对使用
(D)break语句只能用于switch语句
116.阅读下面程序:int i; int x[4][4]= {1,2,3,4,5,6, 7,8, 9, 10, 11, 12, 13, 14, 15, 16 };for(i= 0;i<4; i++)printf("%3d", x[i][3 - i]); 下列选项中哪一项是正确的输出结果[ ]
(А)15913
(B)161116
(C)471013
(D)481216
117.有以下程序段:
#include <stdio.h>
int a,b, c;
a=10; b=50; c=30;
if(a>b)a=b, b=c; c=a;
printf("a=%d b=%d c=%d/n",a, b, c);
程序的输出结果是()
(A)a=10 b=50 c=30
(B)a=10 b=50 c=10
(C)a=10 b=30 c=10
(D)a=50 b=30 c=50
118.以下程序段中,与语句:k=a> b?(b> c?1:0):0;功能相同的是0
(A)if((a> b)&&(b>c))k=1;else k=0;
(B)if((a> b)(b>c))k=1;else k=0;
(C)if(a<=b)k=0;else if(b< =c)k=1;
(D)if(a>b)k=1;else if(b>c) k=1;else k=O;
119.有以下程序: .
#include < stdio.h>
#define PT 3.5;
#define S(x) PT*x*x;
main()
{int a=1, b=2; printf("%4.1fAn" , S(a+)); }
程序运行后的输出结果是0.
(A)7.5
(B)31.5
(C)程序有错无输出结果
(D)14
120.有以下程序:
point(char *p)(p+=3;)
main0{char a[4]={哽'1'便,哽'2'硬,哽'3'哽,哽'4'哽}*p=a;
point(p);
printf("%cn",*p);
}
程序运行后的输出结果是()
(A)1
(B)2
(C)3
(D)4
121. 已知字符'0'的ASCII码值为十六进制的30,下面程序的输出是( ).
void main()
{
union
{
unsigned char c;
unsigned int i(4);
}z;
z.i[0=0x39;
z.i[1=0x36;
printf("%c\n",z.c);
}
(A)6
(B)9
(C)0
(D)3
122.有以下程序:
#include <stdio.h>
int f( int x,int у)
{ return((y-x)*x); }
main()
{ int a=3,b=4,c=5,d;
d=f(f(a,b),f(a,c));
printf("%d(n",d);)
}
程序运行后的输出结果是().
(A)7
(B)10
(C)8
(D)9
123.有以下程序:
# include < stdio.h>
main()
{unsigned char a=8, c;
c = a>>3;
printf("%d/n", c);)
程序运行后的输出结果是().
(A)16
(B)1
(C)32
(D)0
124.将二进制数00001011进行》位运算,将其结果转换为十进制是[ ].
(A)101
(B)1
(C)11
(D)5
125.有以下程序:
#include <stdio.h>
void f(int *p,int *q);
main() l int m= 1,n=2,*r= &m;
f(r, &n);printf("%d,%d",m,n);
void f(int *p,int *q) (p=p+1;*q=*q+1;)
程序运行后的输出结果是0.
(A)1,3
(B)2,3
(C)1,4
(D)1,2
126.有以下程序:
main()
{
int a[3][2]={0},(*ptr)[2],ij;
for(i=0;<2;i+ +)
{ptr=a+ i;scanf("%d" ,ptr);ptr+ +;}for(i=0;i <3;i++)
{for(j=0;j<2;j+ + )printf(" %2d",I[]j);
printf("\n");
}
}
若运行时输入:1 2 3<回车> ,则输出结果是().
(A)编译错误
20
00
(B)1 0
2 0
0 0
(C)1 2
2 0
3 0
(D)1 0
127有以下程序:
# include <stdio.h>
typedef struct { int b, p; }A;
void f(A c)/*注意:c是结构变量名*/f int j;
c.b += 1; c.p+=2;)
main){int i; a={1,2};f(a);
printf("%d,%d(n", a.b, a.p);
}
程序运行后的输出结果是()
(A)2,4
(B)1,2
(C)1,4
(D)2,3
128.下面程序的输出结果为( ).
struct st
int x;
int *y;
}*p;
int dt[4]=(10,20,30,40);
struct st aa[4]=(50,&dt[0],60,&dt[1],70,&dt[2],80,&dt[3]);void main()
p=aa;
printf("%d", ++p->x);
printf("%d ", (++p)->x);
printf("%d ", ++(*p->y));
}
(A)102020
(В)506021
(C)516021
(D)607031
129.有以下程序:
#include < stdio.h>
#include <string.h>
main()
(char str[][20]=("One*World","One*Dream!"),*p=str[1];
printf("%d,",strlen(p)); printf(" %s(n",p);
}
程序运行后的输出结果是()
(A)10,One*Dream!
(B)9,One*Dream!
(C)9,One*World
(D)10,One*World
130.执行下列程序段后的输出结果是[ ).
Int x=1.y=1,z=1;
x+=y+=z;
printf(" %d\n",x<y?y:x)|
(A)3
(B)2
(C)1
(D)4
131.下面程序的输出的是[ ] .
#include < stdio.h>
void main()
{int x=10,y=3;
printf(“%d\n”,y=x/y);
(A)0
(B)1
(C)3
(D)不确定的值
132.下列关于指针变量的描述,不正确的是[].
(A)在没有对指针变量赋值时,指针变量的值是不确定的
(B)同类指针类型可以进行相减操作
(C)在使用没有赋值的指针变量时,不会出现任何问题
(D)可以通过指针变量来取得它指向的变量值
133.有以下程序:
#include < stdio.h>
main()
{ int b[3][3]=(0,1,2,0,1,2,0,1,2),i,j,t=1;
for(i=0; i<3; i++)
for(j=i;j< =¡;j++) t+ =b[i][b[j][i]];
printf(" %d(n",t);
}
程序运行后的输出结果是()
(A)3
(B)4
(C)1
(D)9
134.在C语言中,函数的隐含存储类别是[ ]
(A)auto
(B)static
(C)extern
(D)无存储类别
135.执行以下程序时输入1234567<CR> ,则输出结果是().
#include <stdio.h>
main()int a= 1,b;
scanf("%3d%2d" ,&a,&b);
printf("%d%d(n",a,b);
}
(А)12367
(B)12346
(C)12312
(D)12345 ,
136. 以下叙述中错误的是(.
(A)C语言是一种结构化程序设计语言
(B)使用三种基本结构构成的程序只能解决简单问题
(C)结构化程序设计提倡模块化的设计方法
(D)结构化程序由顺序、分支、循环三种基本结构组成
137. 当用"#define F 37.5f"定义后,下列叙述正确的是
(A)F是float型数
(B)F是char型数
(C)F无类型
(D)F是字符串
138. 下面程序段的输出为().
#include "stdio.h'
main()
{printf(" %d\n" ,12<<2);}
(A)0
(B)47
(C)48
(D)24
程序改错
1.题目:下列给定程序中函数fun的功能是:在字符串的最前端加入n个*号, 形成新串,
并且覆盖原串。字符串的长度最长允许为79。
p=S;mwhile(*p++);
2.题目:假定整数数列中的数不重复,并存放在数组中。下列给定程序中函数fun的功
能是:删除数列中值为x的元素。变量n中存放数列中元素的个数。
if(p==n)■a[i]=a[i+1];
3.题目:请编写-个函数fun ,它的功能是:计算并输出给定整数n的所有因子(不包括1与自身)之和。规定n的值不大于1000。
例如:若主函数从键盘给n输入的值为856 ,则输出为sum= 763。
int s=0,i;
for(i=2;i<=n-1;i++) /*将n减1累加*/
if(n%i==0)
S+=i;
return S;
4.题目:请编写函数fun,该函数的功能是:将放在字符串数组中的M个字符串(每串的长度不
超过N),按顺序合并组成一个新的字符串。
例如:若字符串数组中的M个字符串为{"AAAA"," BBBBBBB","CC"}则合并后的字符串内容应该是"AAAABBBBBBBCC"
注意:请勿改动main函数和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。
int i,j,k=0;
for(i=0;i <M;i++)
for(j=0;a[i][j]!="\0';j++)
b[k+ +]=a[i][];
b[k]="\0';
5.题目:下列给定程序的功能是调用fun函数建立班级通讯录。通讯录中记录每位学生的编号、姓名和电话号码。班级人数和学生信息从键盘读入,每个人的信息作为一个数据块写为myfile5.dat的二进制文件中。
STYPEmFILEmfp
6.题目:下列给定程序中已建立一个带头结点的单向链表,链表中的各结点按结点数据域中,的数据递增有序链接。函数fun的功能是: 把形参x的值放入一个新结点并插入链表中,使插入后各结点数据域中的数据仍保持递增有序。
X■pmS
7.题目:下列给定程序中,函数fun的功能是:将形参s所指字符串中的所有字母字符顺序前
移,其他字符顺序后移,处理后将新字符串的首地址作为函数值返回。
s[i]e ak a0o'\0'
8.题目:给定程序中,函数fun的功能是:统计形参s所指的字符串中数字字符出现的次数,
并存放在形参t所指的变量中,最后在主函数中输出。
s[i]■'9'■*t=n
9.题目:下列给定程序中函数fun的功能是:将一个由八进制数字字符组成的字符串转
换成十进制整数。规定输入的字符串最多只能包含5位八进制数字字符。
n= *p-'0';■n=n*8+*p-'0';
10.题目:下列给定程序中,函数fun的功能是:先将字符串s中的字符按正序存放到字符串t中,
然后把s中的字符按逆序连接到字符串的后面。
for ( i=0; i<sl;i+ +)mt[2*sl]=”\0”;ot[sl*2]="\0”;ot[sl*2]=0;ot[2*sl]=0;
11.题目:数列中,第- -项为3 ,后-项都比前一项的值增5。下列给定程序中 ,函数fun的功
能是:计算前n(4≤n≤50)项的累计和。在累加过程中把那些被4除后余2的当前累
加值放入数组中, 符合此条件的累加值的个数作为函数值返回。
int i, j=0, k, sum ;mif(sum%4==2)
12.题目:下列程序中函数fun的功能是:按顺序给s所指数组中的元素赋予从2开始的偶数,
然后再按顺序对每五个元素求一个平均值 ,并将这些值依次存放在w所指的数组中。
若s所指数组中元素的个数不是5的倍数,则多余部分忽略不计。
sum=0.0;mif(i+ 1)%5==0)
15.题目:给定程序中,函数fun的功能是:将形参std所指结构体数组中年龄最大者的数据作
为函数值返回,并在main函数中输出。
std[0] istd[i].age max.name
16.题目:程序通过定义学生结构体变量,存储了学生的学号、姓名和三门]课的成绩。所有学
生数据均以二进制方式输出到文件中。函数fun的功能是重写形参filename所指文件
中最后-个学生的数据,即用新的学生数据覆盖该学生原来的数据,其他学生的数
据不变。
filename fp fp
17.题目:下列给定程序中,函数fun的功能是:将形参n中, 各位上为偶数的数取出,并按原
来从高位到低位相反的顺序组成一个新数,作为函数值返回。
0 10 * X n/10
18.题目:人员的记录由编号和出生年、月、日组成,N名人员的数据已在主函数中存入结构体
数组std中,,且编号唯- -。函数fun的功能是:找出指定编号人员的数据作为函数值
返回,由主函数输出,若指定编号不存在,返回数据中的编号为空串。
std[ij.nummstd[i]
19.题目:下列给定程序的功能是:读入一个整数k(2≤k≤10000) ,输出它的所有质因
子(即所有为素数的因子)。
IsPrime(int n)u if(!(n%i))
20.题目:下列给定程序中,函数fun的功能是:读入-个字符串(长度< 20) ,将该字符
串中的所有字符按ASCII码值升序排序后输出。
21.for(i=strlen(t)-1; i; i--)ofor(i=strlen(t)-1;i>0; i--)mif(t[j] > t[j+1])
题目:下列给定程序中,函数fun的功能是:找出100 ~ n(不大于1000)之间三个位上的数
字都相等的所有整数,把这些整数放在s所指的数组中, 个数作为函数值返回。
k=i;mb=k%10;
21.题目:下列给定程序中,函数fun的功能是:根据输入的三三个边长(整型值) ,判断能
否构成三角形。若能构成等边三角形, 则返回3 ; 若是等腰三角形,则返回2 ;
若能构成三角形则返回1 ;若不能,则返回0。
return 3;m return 1; else return 1;
24.题目:给定程序中,函数fun的功能是:在任意给定的9个正整数中找出按升序排列时处于中间的数,将原数据序列中比该中间数小的数用该中间数替换,位置不变,在主函数中输出处理后的数据序列,并将中间数作为函数值返回。
b[k]m4oN/2■<
25.题目:给定程序中,函数fun的功能是将a和b所指的两个字符串分别转换成面值相同的整数,并进行相加作为函数值返回,规定字符串中只含9个以下数字字符。
例如:主函数中输入字符串"32486"和"12345" ,在主函数中输出的函数值为44831.
“0'" s ++ ctod(a) + ctod(b)
26.题目:下列给定程序中函数fun的功能是:从整数10到55之间,查找能被3整除且有一位数的数值是5的数,把这些数放在b所指的数组中,这些数的个数作为函数值返回。规定函数中al放个位数, a2放十位数。
a2=k/10; return i;
27.题目:下列给定程序中,函数fun的功能是:比较两个字符串,将长的字符串的首地址作为函数值返回。
char *fun( char *s,char *t) SS+ +; tt+ +;
【程序改错】
---------------------------------------------------------
1.例如:若输入:"I am a student to take the examination",
则应输出:"I aM A studenT tO takE thE examinatioN"。
/***********FOUND***********/
if (*p==' ')
{
k=0;
/***********FOUND***********/
*(p-1)=toupper( *(p-1));
【程序改错】
---------------------------------------------------------
例如:程序运行后,输入0.0001,则程序输出3.1414。
/***********FOUND***********/
while(fabs(t) >= num)
{
pi = pi + t ;
n = n + 2 ;
s = -s ;
/***********FOUND***********/
t = s / n ;
【程序改错】
---------------------------------------------------------
题目:下列给定程序中,函数fun的功能是:根据整型参数m,计算如下公式的值。
y=1/(100×100)+1/(200×200)+1/(300×300)+…+1/(m×m)
例如:若m=2000,则应输出0.000160。
/***********FOUND***********/
double fun (int m)
{
double y=0, d;
int i;
/***********FOUND***********/
for(i=100,i<=m,i+=100)
【程序改错】
---------------------------------------------------------
题目:下列给定程序中函数Creatlink的功能是:创建带头结点的单向链表,
并为各结点数据域赋0到m-1的值。
/***********FOUND***********/
p=(NODE *)malloc(sizeof(NODE));
/***********FOUND***********/
return h;
【程序改错】
例如:输入8名学生的成绩:80.5、60、72、90.5、98、51.5、88、64则低于平均分的
学生人数为4(平均分为75.5625)。
/***********FOUND***********/
t+=s[k];
/***********FOUND***********/
*aver=&ave; (删除&)
【程序改错】
---------------------------------------------------------
题目:下列给定的程序中,函数fun的功能是:为一个偶数寻找两个素数,这两个
素数之和等于该偶数,并将这两个素数通过形参指针传回主函数。
/***********FOUND***********/
y=1;
/***********FOUND***********/
d=a-i;
【程序改错】
例如:若num1和num2分别为49和21,则输出的最大公约数为7;
若num1和num2分别为27和81,则输出的最大公约数为27。
/***********FOUND***********/
t=a;a=b; b=t;
/***********FOUND***********/
return(b);
【程序改错】
---------------------------------------------------------
题目:fun函数的功能是:删除b所指数组中小于10的数据。主函数中输出删除后数组中
余下的数据。
/***********FOUND***********/
int t[N] ,i, num=0;
/***********FOUND***********/
t[++num]=b[i]; (++删掉)
/***********FOUND***********/
for(i=0; i<num; i++)
【程序改错】
题目:下列给定程序中函数fun的功能是:将长整型数中各位上为奇数的数依次取出,构
成一个新数放在t中。高位仍在高位,低位仍在低位。
例如:当s中的数为87653142时,t中的数为7531。
/***********FOUND***********/
*t = 0;
/***********FOUND***********/
if (d%2! == 0) (去掉个等号)
【程序改错】
题目:下列给定程序中函数fun的功能是:计算并输出下列级数的前N项和SN,直
到SN+1的值大于q为止,q的值通过形参传入。如"图片1"。
例如:若q的值为50.0,则函数值应为49.394948。
/***********FOUND***********/
s=s+(double) (n+1)/n;
/***********FOUND***********/
return t;
【程序改错】
题目:下列给定程序中函数fun的功能是:实现两个变量值的交换,规定不允许增
加语句和表达式。
例如:变量a中的值原为8,b中的值原为3,程序运行后a中的值为3,b中的值为8。
/***********FOUND***********/
t = *x ; *x = y;
/***********FOUND***********/
return(t) ;
【程序改错】
题目:下列给定程序中函数fun的功能是:将字符串中的字符逆序输出,但不改变字
符串中的内容。
例如:若字符串为"abcd",则应输出:"dcba"。
/***********FOUND***********/
if ( *a )
/***********FOUND***********/
printf("%c",*a) ;
【程序改错】
题目:下列给定程序中,函数fun的功能是:根据整型参数m,计算如下公式的值。
y=1/(100×100)+1/(200×200)+1/(300×300)+…+1/(m×m)
例如:若m=2000,则应输出0.000160。
/***********FOUND***********/
double fun (int m)
/***********FOUND***********/
for(i=100;i<=m;i+=100)
【程序改错】
例如:当字符串中的内容为"abcdabfabcdx",t中内容为"ab"时,输出结果应是"abcdx"。
当字符串中的内容为"abcdabfabcdx",t中内容为"abd"时,则程序输出未找
到信息"not be found!"。
/***********FOUND***********/
a == NULL;
/***********FOUND***********/
if (* r == *p )
【程序改错】
题目:函数fun()的功能是统计s所指一维数组中0的个数(存在变量zero中)和1的
个数(存在变量one中),并输出结果。
/***********FOUND***********/
int i, one=0, zero=0 ;
/***********FOUND***********/
siwtch(s[i] );
/***********FOUND***********/
case 0: zero++; break;
【程序改错】
题目:下列给定程序中函数fun的功能是:
计算函数F(x,y,z)=(x+y)/(x-y)+(z+y)/(z-y)的值。
其中x和y的值不相等,z和y的值不相等。
/***********FOUND***********/
#define FU(m,n) ((m)/(n))
**********FOUND***********/
return (value);
【程序改错】
---------------------------------------------------------
题目:给定程序中规定输入的字符串全部为字母,fun函数的功能是:统计a所指字符串中
每个字母在字符串中出现的次数(统计时不区分大小写),并将出现次数最高的字
母输出(如果有多个相同,输出一个即可)。
例如:对于字符串:dadbcdbabdb,对应的输出应为:b或d。
/***********FOUND***********/
b[i] = 0;
/***********FOUND***********/
b[a[i] - 'a'];
/***********FOUND***********/
if (b[max] <b[i])
【程序改错】
题目:数列中,第一项为3,后一项都比前一项的值增5。下列给定程序中,函数fun的功
能是:计算前n(4≤n≤50)项的累计和。在累加过程中把那些被4除后余2的当前累
加值放入数组中,符合此条件的累加值的个数作为函数值返回。
例如:当n的值为20时,该数列为3、8、13、18、23、28、…、93、98,
符合此条件的累加值应为42、126、366、570、1010。
/***********FOUND***********/
int i,j=0,k,sum;
/***********FOUND***********/
if(sum%4==2)
程序设计
13.题目:编写函数un,其功能是:求s所指字符串中指定字符的个数,井返回此值,
int i=0;
for(;*ss!=”\0";ss++)
if(*ss==c)
i++;
return i;
14.题目:请编写函数fun ,该函数的功能是:统计各年龄段的人数。N个年龄通过调用随机
函数获得,并放入主函数的age数组中。
要求函数把0 ~ 9岁年龄段的人数放在d[0]中,把10~ 19岁年龄段的人数放在d[1]中,
把20 ~ 29岁年龄段的人数放在d[2]中,依此类推,把100岁(含100岁)以上年龄的人
数都放在d[10]中。结果在主函数中输出。
int i,n=0,fg=1;
char *p=str;
while (*p)
n++;
p++;
}
for(i=0;i<n/2;i+ +)
if(str[i]==str[n-1-i]) ;
else
fg=0;
break;
return fg;
22.题目:学生的记录由学号成绩组成, N名学生的数据已放入主函数中的结构体数组s中,
请编写函数fun ,其功能是:函数返回该学号的学生数据,指定的学号在主函数中
输入。若没找到指定学号,在结构体变量中给学号置空串,给成绩置-1 ,作为函
数值返回。(用于字符串比较的函数是strcmp)。
int i;
STREC str={"\0",-1};
for(i=0;i<N;i+ +)
if(strcmp(a[i].num,b)==0)
str=a[];
return str;
23.题目:编写函数fun ,其功能是:实现两个字符串的连接(不要使用库函数strcat) ,即
把p2所指的字符串连接到p1所指的字符串的后面。
int ij;
for(i=0;p1[i]!='\0';i++) ;
for(j=0;p2[j]!="\0';j++)
p1[i+ +]=p2[j];
p1[0]="\0';
28.题目:请编写函数fun ,其功能是:计算并输出给定10个数的方差。
例如:给定的10个数为95.0、89.0、 76.0、65.0、 88.0、 72.0、85.0、 81.0、 90.0、 56.0
则输出为S = 11.730729。
注意:请勿改动主main函数和其他函数中的任何内容,仅在函数fun的花括号中填入
你编写的若干语句。
double x1 =0.0,s=0.0;
int i;
for(i=0;i <10;i+ +)
x1=x1 +x[];
x1 =x1/10; .
for(i=0;i <10;i+ +)
S=S+ (x[i]-x1)*(x[]-x1);
return sqrt(S/10);
29.题目:编写函数fun,其功能是:求出1~100之间能被7或11整除,但不能同时被7和11整
除的所有整数,并将其放在a所指的数组中,通过n返回这些数的个数。
注意:请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入
你编写的若干语句。
int ij=0;
for(i=1;i<=100;i+ +)
if((i%7 = =0l|i%11= =0)&&i%77!=O)
a[j++]=i;
*n=j;
【程序设计】
题目:学生的记录由学号和成绩组成,N名学生的数据已放入主函数中的结构体数组s中,
请编写函数fun,其功能是:按分数降序排列学生的记录,高分在前,低分在后。
注意:请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入
你编写的若干语句。
/**********Program**********/
int i,j;
STREC temp;
for(i=0;i<N-1;i++)
for(j=0;j<N-1-i;j++)
if(a[j].s<a[j+1].s)
{temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
/********** End **********/
【程序设计】
题目:请编写函数fun,该函数的功能是:将M行N列的二维数组中的数据,按行的顺序
依次放到一维数组中,一维数组中数据的个数存放在形参n所指的存储单元中。
例如:若二维数组中的数据为:
33 33 33 33
44 44 44 44
55 55 55 55
则一维数组中的内容应该是:33 33 33 33 44 44 44 44 55 55 55 55。
/**********Program**********/
int i,j,k=0;
for(i=0;i<mm;i++)
for(j=0;j<nn;j++)
b[k++]=s[i][j];
*n=k;
/********** End **********/
题目:编写函数fun,其功能是:根据以下公式求P的值,结果由函数值带回。
m与n为两个正整数且要求m>n。如“样张”。
例如:m=12,n=8时,运行结果为495.000000。
注意:请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入
你编写的若干语句。
{
/**********Program**********/
float s1;
int i,temp;
if(m<n)
{ temp=m;
n=m;
m=temp;
}
s1=jc(m)/(jc(n)*jc(m-n));
return s1;
/********** End **********/
【程序设计】
题目:学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组s中,
请编写函数fun ,其功能是:把低于平均分的学生数据放入b所指的数组中,低于
平均分的学生人数通过形参n传回,平均分通过函数值返回。
注意:请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入
你编写的若干语句。
/**********Program**********/
double avg=0;
int i,k=0;
for(i=0;i<N;i++)
avg=avg+a[i].s;
avg=avg/N;
for(i=0;i<N;i++)
{ if(a[i].s<avg)
b[k++]=a[i];
}
*n=k;
return avg;
/********** End **********/
/*-------------------------------------------------------
【程序设计】
---------------------------------------------------------
题目:请编写函数fun,函数的功能是查找x在s所指数组中下标的位置,并作为函数值返回,
若x不存在,则返回-1。
注意:请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入
你编写的若干语句。
/**********Program**********/
int i;
for(i=0;i<N;i++)
if(s[i]==x) return i;
return -1;
/********** End **********/
/*-------------------------------------------------------
【程序设计】
---------------------------------------------------------
题目:请编写函数fun,其功能是:找出2×M整型二维数组中最大元素的值,并将此值
返回调用函数。
注意:请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入
你编写的若干语句。
/**********Program**********/
int max=a[0][0];
int i,j;
for(i=0;i<2;i++)
for(j=0;j<M;j++)
if(max<a[i][j])
max=a[i][j];
return max;
/********** End **********/
/*-------------------------------------------------------
【程序设计】
---------------------------------------------------------
题目:请编写函数fun,其功能是将形参s所指字符串放入形参a所指的字符数组中,使a
中存放同样的字符串。说明:不得使用系统提供的字符串函数。
注意:请勿改动主函数main和其他函数中的任何内容,仅在函数fun指定的部位填入
你所编写的若干语句。
/**********Program**********/
int i=0;
while(s[i]!='\0')
{a[i]=s[i];
i++;
}
a[i]='\0';
/********** End **********/
自己
【程序设计】
题目:请编写函数fun,该函数的功能是:计算并输出如“样张”的值。
例如:若主函数从键盘给n输入20后,则输出为S=534.188884。
注意:请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入
你编写的若干语句。
/**********Program**********/
double sn=0.0,t;
int i,j;
for(i=0;i<=n;i++){
t=1.0;
for(j=0;j<=i;j++)
t=t*j;
sn=sn+t;
}
return sn;
/********** End **********/
【程序设计】
---------------------------------------------------------
题目:请编写函数fun,其功能是:统计s所指字符串中的数字字符个数,并作为函数值
返回。
例如:s所指字符串中的内容是:2def35adh25 3kjsdf 7/kj8655x,函数fun返回值为:11
注意:请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入
你编写的若干语句。
/**********Program**********/
int n = 0;
while(*s != '\0')
{
if(*s >= '0' && *s <= '9')
++n;
++s;
}return n;
/********** End **********/
题目:请编写函数fun,函数的功能是查找x在s所指数组中下标的位置,并作为函数值返回,
若x不存在,则返回-1。
注意:请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入
你编写的若干语句。
/**********Program**********/ 4.5fen
int i, j = -1;
for(i = 0; i < strlen(s); i++)
{
if(x == s[i])
{
j = i;
}
}
return j;
【程序设计】
题目:请编写函数fun,其功能是计算并输出如下多项式的值。
Sn=1+1/1!+1/2!+1/3!+1/4!+…+1/n!
例如:若主函数从键盘给n输入15,则输出为S=2.718282。
注意:n的值要求大于1但不大于100。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入
你编写的若干语句。
/**********Program**********/
double s=1;
long t=1;
int i;
for(i=1;i<=n;i++)
{
t=t*i;
s+=1./t;
}
return s;
/********** End **********/
【程序设计】
---------------------------------------------------------
题目:下列程序定义了N×N的二维数组,并在主函数中自动赋值。
请编写函数fun(int a[ ][N],int m),该函数的功能是使
数组右上半三角元素中的值乘以m。
例如:若m的值为2,a数组中的值为:1 9 7
2 3 8
4 5 6
则返回主程序后a数组中的值应为:
2 18 14
2 6 16
4 5 12
注意:请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入
你编写的若干语句。
/**********Program**********/
int i,j;
for(i=0;i<N;i++)
for(j=0;j<N;j++)
{
if (i>j)
a[i][j]=0;
}
/********** End **********/
【程序设计】
---------------------------------------------------------
题目:请编写函数fun,其功能是:将一个数字字符串转换为一个整数(不得调用C语言提供
的将字符串转换为整数的函数)。
例如:若输入字符串"-1234",则函数把它转换为整数值-1234。
注意:请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入
你编写的若干语句。
/**********Program**********/
int len,t;
long x=0;
len=strlen(p);
if(p[0]=='-')
{
t=-1;len--;p++;
}
else t=1;
while(*p)
x=10*x+(*p-48),p++;
return x*t;
/********** End **********/
【程序设计】
---------------------------------------------------------
题目:函数fun的功能是:将s所指字符串中除下标为偶数同时ASCII码值也为偶数的字符
外,其余的全部删除;字符串中剩余字符所形成的新串放在t所指的数组中。
例如:若s所指字符串中的内容为"ABCDEFG123456",其中字符A的ASCII码值为奇数,因此应
当删除;字符B的ASCII码值为偶数,但在数组中的下标为奇数,因此也应当删除;字
符2的ASCII码值为偶数,在数组中的下标也为偶数,因此不应当删除,其他依此类推。
最后t所指的数组中的内容应是"246"。
注意:请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入
你编写的若干语句。
/**********Program**********/
int i,j=0;
for(i=0;s[i]!='\0';i+=2)
if(s[i]%2==0)
t[j++]=s[i];
t[j]='\0';
/********** End **********/
【程序设计】
---------------------------------------------------------
题目:规定输入的字符串中只包含字母和*号。编写函数fun,其功能是:除了字符串前导
和尾部的*号外,将串中其它的*号全部删除。形参h已指向字符串中第一个字母,
形参p指向字符串的中最后一个字母。在编写函数时,不得使用C语言提供的字符
串函数。
例如:若字符串中的内容为****A*BC*DEF*G*******,删除后,字符串中的内容应当是:
****ABCDEFG********。在编写函数时,不得使用C语言提供的字符串函数。
注意:请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入
你编写的若干语句。
/**********Program**********/
int i=0;
char*q=a;
while(q<h)
{
a[i]=*q;q++;i++;
}
while(q<p){
if(*q!='*')
{
a[i]=*q;i++;
}
q++;
}
while(*q)
{
a[i]=*q;i++;q++;
}
a[i]='\0';
/********** End **********/
程序设计】
---------------------------------------------------------
题目:请编写函数fun,其功能是:统计s所指字符串中的数字字符个数,并作为函数值
返回。
例如:s所指字符串中的内容是:2def35adh25 3kjsdf 7/kj8655x,函数fun返回值为:11
注意:请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入
你编写的若干语句。
/**********Program**********/
int n = 0;
while(*s != '\0')
{
if(*s >= '0' && *s <= '9')
++n;
++s;
}
return n;
/********** End **********/
题目:请编写函数fun,函数的功能是查找x在s所指数组中下标的位置,并作为函数值返回,
若x不存在,则返回-1。
注意:请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入
你编写的若干语句。
/**********Program**********/
int i,k=-2;
for(i=0;i<x;i++)
if(x==s[i])
k=i;
return k;
/********** End **********/
程序设计】
---------------------------------------------------------
题目:学生的记录由学号和成绩组成,N名学生的数据已放入主函数中的结构体数组s中,
请编写函数fun,其功能是:把分数最高的学生数据放在b所指的数组中。
注意:分数最高的学生可能不止一个,函数返回分数最高的学生的人数。
请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入
你编写的若干语句。
/**********Program**********/
int i,j=0,max=a[0].s;
for(i=0)
if(max==a[i].s)
b[j++]=a[i];
return j;
/********** End **********/
【程序设计】
题目:编写函数fun,其功能是:利用下面的简单迭代方法求方程cos(x)-x=0的一个实根。
/**********Program**********/
double x0,x1;
x1=0.0;
do{
x0=x1;
x1=cos(x0);
}
while(fabs(x0-x1)>=1e-6);
return x1;
/********** End **********/
程序填空
1.题目:下列给定程序中,函数fun的功能是:在形参s所指字符串中的每个数字字符之后插
入一个*号。
例如:形参s所指的字符串为"def35adh3kjsdf7" ,执行后结果为"def3*5*adh3*kjsdf7*"
#include < stdio.h>
&&m0o'\0'ms[j]o*(s+j)o*(j++s)
2.题目:函数fun的功能是:统计所有小于等于n(n> 2)的素数的个数,素数的个数作为函数值返回。
j=2mi%jnj
3.题目:给定程序中,函数fun的功能是:在3×4的矩阵中找出在行上最大、在列上最小
的那个元素,若没有符合条件的元素则输出相应信息。
例如:有下列矩阵:1 2 13 4
7 8 10 6
3 5 9 7
程序执行结果为:find:a[2][2]=9
/***********SPACE***********/
c= j ;
/***********SPACE***********/
find= 0;
k++;
/***********SPACE***********/
i++ ;
【程序填空】
---------------------------------------------------------
题目:给定程序中,函数fun的功能是:将a所指3×5矩阵中第k列的元素左移到第0列,
第k列以后的每列元素行依次左移,原来左边的各列依次绕到右边。
例如:有下列矩阵:1 2 3 4 5
1 2 3 4 5
1 2 3 4 5
若k为2,程序执行结果为3 4 5 1 2
3 4 5 1 2
3 4 5 1 2
/***********SPACE***********/
for(p=1; p<=k; p++)
/***********SPACE***********/
for(j=0; j<N-1; j++
/***********SPACE***********/
a[i][N-1]= temp;
【程序填空】
题目:下列给定程序中,函数fun的功能是进行数字字符转换。若形参ch中是数字字
符'0'~'9',则将'0'转换成'9','1'转换成'8','2'转换成'7',……,'9'转换
成'0';若是其它字符则保持不变;并将转换后的结果作为函数值返回。
/***********SPACE***********/
char fun(char ch)
/***********SPACE***********/
if (ch>='0' && ch<=’9’)
/***********SPACE***********/
return '9'- (ch-‘0’);
【程序填空】
题目:下列给定程序中,函数fun的功能是:将形参n中,各位上为偶数的数取出,并按原来
从高位到低位的顺序组成一个新数,作为函数值返回。
例如:从主函数输入一个整数27638496,则函数返回值为26846。
/***********SPACE***********/
i=1;
/***********SPACE***********/
while(s>0)
/***********SPACE***********/
x=x+t*i; i=i*10;
【程序填空】
题目:下列给定程序的功能是调用fun函数建立班级通讯录。通讯录中记录每位学生的编
号、姓名和电话号码。班级人数和学生信息从键盘读入,每个人的信息作为一个数
据块写到名为myfile5.dat的二进制文件中。
/***********SPACE***********/
int fun(STYPE*std)
{
/***********SPACE***********/
FILE *fp;
/***********SPACE***********/
fwrite(&std[i], sizeof(STYPE), 1, fp);
【程序填空】
题目:给定程序中,函数fun的功能是将a和b所指的两个字符串分别转换成面值相同的
整数,并进行相加作为函数值返回,规定字符串中只含9个以下数字字符。
例如:主函数中输入字符串"32486"和"12345",在主函数中输出的函数值为44831。
/***********SPACE***********/
d=d*10+*s-“0”;
/***********SPACE***********/
S++;
/***********SPACE***********/
return ctod(a)+ctod(b);
【程序填空】
题目:下列给定程序中,函数fun的功能是:把形参a所指数组中的最小值放在元素a[0]中,
接着把a所指数组中的最大值放在a[1]元素中;再把a所指数组元素中的次小值放
在a[2]中,把a所指数组元素中的次大值放在a[3],以此类推。
例如:若a所指数组中的数据最初排列为:9、1、4、2、3、6、5、8、7;则按规则移动后,
数据排列为:1、9、2、8、3、7、4、6、5。形参n中存放a所指数组中数据的个数。
规定fun函数中的max存放当前所找的最大值,px存放当前所找最大值的下标。
/***********SPACE***********/
max = min = a[i];
/***********SPACE***********/
if (max<a[j])
/***********SPACE***********/
if (min>a[j])
【程序填空】
题目:给定程序中,函数fun的功能是:计算出形参s所指字符串中包含的单词个数,作为
函数值返回。为便于统计,规定各单词之间用空格隔开。
例如:形参s所指的字符串为:This is a C language program.,函数的返回值为6。
/***********SPACE***********/
n++ ;
/***********SPACE***********/
flag= 0 ;
/***********SPACE***********/
S++ ;
【程序填空】
题目:程序通过定义学生结构体变量,存储学生的学号、姓名和3门课的成绩。
函数fun的功能是:将形参a所指结构体变量s中的数据进行修改,并把a的
地址作为函数值返回主函数,从主函数中输出修改的数据。
例如:a所指变量s中的学号、姓名和三门课的成绩依次是:
10001、"ZhangSan"、95、80、88,修改后输出t中的数据应为:
10002、"LiSi"、96、81、89。
/***********SPACE***********/
struct student *fun(struct student *a)
/***********SPACE***********/
a->struct[i] += 1;
/***********SPACE***********/
Return a ;
【程序填空】
题目:给定程序中,函数fun的功能是将不带头结点的单向链表逆置,即若原链表中从头至尾
结点数据域依次为 2,4,6,8,10,逆置后,从头至尾结点数据域依次为10,8,6,4,2。
/***********SPACE***********/
NODE * fun(NODE *h)
/***********SPACE***********/
r = q->next;
/***********SPACE***********/
q =r ;
程序填空】
题目:函数fun的功能是:统计长整数n的各位上出现数字1、2、3的次数,并用
外部(全局)变量c1、c2、c3返回主函数。
例如:当n=123114350时,结果应该为:c1=3 c2=1 c3=2。
/***********SPACE***********/
switch(n%10)
/***********SPACE***********/
c1++;break;
/***********SPACE***********/
c2++;break
题目:下列给定程序中,函数fun的功能是:把形参s所指字符串中下标为奇数的字符右移
到下一个奇数位置,最右边被移出字符串的字符绕回放到第一个奇数位置,下标
为偶数的字符不动(注:字符串的长度大于等于2)。
例如:形参s所指字符串为"abcdefgh",执行结果为"ahcbedgf"。
/***********SPACE***********/
if(n%2==0) k=n-1 ;
/***********SPACE***********/
c=s[k] ;
/***********SPACE***********/
s[1]=c ;
【程序填空】
题目:给定程序中,函数fun的功能是:判定形参a所指的N×N(规定N为奇数)的矩阵是否
是"幻方",若是,函数返回值为1;若不是,函数返回值为0。
"幻方"的判定条件是:矩阵每行、每列、主对角线及反对角线上元素之和都相等。
例如:以下3×3的矩阵就是一个"幻方":
4 9 2
3 5 7
8 1 6
/***********SPACE***********/
row=colum= 0;
/***********SPACE***********/
if( (row!=colum) ||(row!=m1) )
/***********SPACE***********/
return 1;
【程序填空】
题目:下列给定程序中,函数fun的功能是进行数字字符转换。若形参ch中是数字字
符'0'~'9',则将'0'转换成'9','1'转换成'8','2'转换成'7',……,'9'转换
成'0';若是其它字符则保持不变;并将转换后的结果作为函数值返回。
/***********SPACE***********/
char fun(char ch)
/***********SPACE***********/
if (ch>='0' && ch<=’9’)
/***********SPACE***********/
return '9'- (ch-‘0’)
【程序填空】
题目:下列给定程序中,函数fun的功能是:逆置数组元素中的值。
例如:若a所指数组中的数据为:1、2、3、4、5、6、7、8、9,则逆置后依
次为:9、8、7、6、5、4、3、2、1。形参n给出数组中数据的个数。
/***********SPACE***********/
for (i=0; i<n/2; i++
/***********SPACE***********/
a[i] = a[n-1-i];
/***********SPACE***********/
a[n-i-1]= t;
【程序填空】
题目:下列给定程序中,函数fun的功能是:计算如下公式前n项的和并作为函数值返回。
如“图片1”。
例如:当形参n的值为10时,函数返回值为9.612558。
/***********SPACE***********/
s=0;
/***********SPACE***********/
for(i=1; i<=n; i++
/***********SPACE***********/
s=s+(2.0*i-1)*(2.0*i+1)/(t*t);
【程序填空】
题目:给定程序中,函数fun的功能是:求出形参ss所指字符串数组中最长字符串的长度,
其余字符串左边用字符*补齐,使其与最长的字符串等长。字符串数组中共有M个字
符串,且串长小于N。
/***********SPACE***********/
n=len; k=i;
/***********SPACE***********/
for(j=len; j>=0; j--)
/***********SPACE***********/
ss[i][j]='*';
【程序填空】
题目:函数fun的功能是:计算如“图片1”直到“图片2” 。
若x=2.5,函数值为1.917915。
/***********SPACE***********/
t=x;
/***********SPACE***********/
t*=(-1.0)*x/n;
/***********SPACE***********/
while(fabs(t) >=1e-6);
【程序填空】
题目:给定程序中,函数fun的功能是:将a所指4×3矩阵中第k行的元素与第0行元素交换。
例如:有下列矩阵:1 2 3
4 5 6
7 8 9
10 11 12
若k为2,程序执行结果为:7 8 9
4 5 6
1 2 3
10 11 12
/***********SPACE***********/
void fun(int (*a)[N], int k)
/***********SPACE***********/
for(i = 0 ; i < N; i++)
/***********SPACE***********/
a[0][i] = a[k][i];
【程序填空】
题目:给定程序中,函数fun的功能是:判断形参s所指字符串是否是"回文"(Palindrome),
若是,函数返回值为1;不是,函数返回值为0。
"回文"是正读和反读都一样的字符串(不区分大小写字母)。
例如,LEVEL和Level是"回文",而LEVLEV不是"回文"。
/***********SPACE***********/
lp=s
/***********SPACE***********/
rp--;
/***********SPACE***********/
Return 0 ;
题目:人员的记录由编号和出生年、月、日组成,N名人员的数据已在主函数中存入结构体
数组std中。函数fun的功能是:找出指定出生年份的人员,将其数据放在形参k所指
的数组中,由主函数输出,同时由函数值返回满足指定条件的人数。
-
/***********SPACE***********/
if( std[i].year==year)
/***********SPACE***********/
k[j++]= std[i];
/***********SPACE***********/
return (j);