1、外部变量对程序中的任一#函数#而言,它们是(B )
A存在的; B可直接存取的; C不可见的; D 不可直接存取的
2、下列说法中错误的是 (C)
A变量的定义可以放在所有函数之外; B变量的定义可以放在某个复合语句的开头;
C变量的定义可以放在函数的任何位置;
D变量的定义可以不放在本编译单位中,而放在其它编译单位中
3、FILE *p的作用是定义了一个文件型指针(或指向文件的指针),其中的FILE结构是在( D )头文件
中声明的
A.math.h;
B.ctype.h;
C.stdlib.h;
D.stdio.h
4、已知x=43,ch='A',y=0;则
达式(x > = y&&ch < 'B'&&!y)的值是(A)
A 1;B语法错;C.”真” D.“假”
5、下面能正确进行字符串赋值操作的是(C ) A
A.char s[5]={"ABCDE"};;
B.char s[5]={ ′A′, ′B′, ′C′, ′D′, ′E′};;
C.char *s;s="ABCDE";;
D.char *s;char a; scanf("%s",&s);
6、下列各数据类型不属于构造类型的是(A )
A枚举型; B共用型; C结构型; D数组型;
7、下列对C语言字符数组的描述中错误的是(D )
A .字符数组可以存放字符串; B字符数组中的字符串可以整体输入、输出;
C 不可以用关系运算符对字符数组中的字符串进行比较;
D可以在赋值语句中通过赋值运算符“=”对字符数组整体赋值;
8、从作用域的角度来分,C语言的变量可以分成(B )
A.自动变量和寄存器变量;
B.局部变量和全局变量;
C.自动变量和外部变量;
D.静态变量和动态变量
9、正确的表达关系式a大于等于b平方或不等于c的C语言是(A )
A.(a>=b**2)||(a<>c);
B.(a>=b*b)&&(a!=c);
C.(a>=b*b)OR(a!=c);
D.(a>=b*b)AND(a!=c)
10、下面C语言程序段的功能是( D)
FILE *fp;
fp=fopen("test.dat","wb");
A.以读方式打开文本文件test.dat;
B.以写方式打开文本文件test.dat
C.以读方式打开二进制文件test.dat;
D. 以写方式打开二进制文件test.dat
11、设有数组定义: char array[]="China"; 则数组 array所占的空间为( C)
A.4个字节;
B.5个字节;
C.6个字节;
D.7个字节
12、在C语言中,如果下面的变量都是int类型,则输出的结果是(A )
sum=pa=5;pa=sum++,pa++,++pa;
printf("%d\n",pa);
A. 7;
B.6;
C. 5;
D. 4
13、当c的值不为0时,在下列选项中能正确将c的值赋给变量a、b的是(C )
A.c=b=a;(a=c) B || (b=c); C. (a=c)&&(b=c) ; D a=c=b;
14、sizeof(float)是(B )
A一个双精度型表达式; B一个整型表达式;
C一种函数调用; D一个不合法的表达式
15、一个C语言程序是由(B )
A一个主程序和若干子程序组成;B函数组成;C若干过程组成;
D若干子程序组成
16、设x和y均为int型变量,则语句:x+=y;y=x-y;x-=y;的功能是( C)
A把x和y按从小到大排列;B 把x和y按从大到小排列;
C 交换x和y中的值;
D 无确定结果
17 C语言提供的合法的关键字是(D)
A swicth;
B cher;
C Case
D default
18 Turbo C语言环境中,无符号整型(unsigned int)数据类型的取值范围( C )
A -32768至32767;
B 0至32767;
C 0至65535;
D 0至65536;
19 算法的表示方法有(A)
A自然语言,传统流程图,N-S流程图,伪代码,计算机语言; B高级语言,汇编语言,机器语言;
C C语言,QBASIC语言,InterDev; D图形图像法,描述法,编程法
20 C语言中基本的数据类型包括( C )
A整型,实型,字符型和逻辑型; B整型,实型,字符型和数组型;
C整型,实型,字符型和枚举型; D整型,实型,字符型和指针型
21 在C语言程序中,main()函数最多有( B )
A 0;
B 1;
C 2;
D 不限
22 一个C程序总是从一个C程序总是从( B )
A主过程开始执行; B主函数开始执行; C子程序开始执行; D主程序开始执行
23 在C语言中,可以用作用户
符的一组标识符是( B)
A void、define、WORD;
B a3_b3、_123、IF;
C For、-abc、case;
D 2a、DO、sizeof
24 下面程序运行后,输出的结果是( C)
main()
{ char *s="abcde";
printf("%ld\n",s+2);
}
A Cde;
B 字符c的ASCLL码值;
C 字符c的地址; D出错
25 语句for(表达式1; ;表达式3)等价于( C )
A for(表达式1;0;表达式3);
B for(表达式1;表达式1;表达式3);
C for(表达式1;1;表达式3);
D for(表达式1;表达式3;表达式3)
26 若t为double类型,表达式t=1,t+5,t++的值是(C )
A 2.0;
B 6.0;
C 1.0;
D 1
27、若有说明语句:char c='\72';则变量c(A)
A包含1个字符; B包含2个字符; C包含3个字符; D说明不合法,c的值不确定
28、设有定义:int (*ptr)();,则下面叙述中正确的是(C ) A:ptr是指向一维数组的指针变量; Bptr是指向int型数据的指针变量;
C.ptr是指向函数的指针,该函数返回一个int型数据;
D.ptr是一个函数名,该函数的返回值是指向int型数据的指针
29、C语言程序的三种基本结构是(A)
A顺序结构、选择结构、循环结构; B递归结构、循环结构、转移结构;
C嵌套结构、递归结构、循环结构; D循环结构、转移结构、顺序结构
30、以下描述述中正确的是(D)
A.scanf("%f",3.5);;
B.scanf("a=%d ,b=%d");;
C.scanf("%4.2f",&d);
D.scanf("%f",&f);
31、C语言程序中有说明语句 char *pt[4];则标识符pt的含义是(B)
A一个指向长度为4的一维数组的指针变量;B指向字符型变量的指针数组;
C1个指向4的字符型变量的指针变量; D指向函数的指针变量
33、在C语言中能中止循环的语句是
quit;break;default;continue
34、设有如下变量定义:
int i=8,k,a,b;
unsigned long w=5;
double x=1.42,y=5.2;
35、则下列表达式中符合C语言语法的是( A )
A.a=a-=(b=4)*(a=3);
B.x%3;
C.a=a*3=2;
D.y/(--5)
36、下面的for循环(C)
for(x=0,y=0;(y!=123)&&(x<4);x++);
A是无限循环; B循环次数不定; C执行4次; D执行3次
37、C语言提供的合法的数据类型关键字是(B)
A Double;
B short;
C integer;
D Chara=c=b;
38、以下运算符中优先级最低的是(C)
A.&& ;
B.&;
C.||;
D.|
39、C语言用(B)表示逻辑“真”值。
A.True;
B.1;
C.非0整数值;
D.整数0
40、若x和y都是int型变量,且x=100,y=200,则执行printf("%d",x,y);语句后,输出的结果是(B) A200; B100; C100 200; D输出
符不够,输出不确定的值41、设有如下的定义 ( )
int x[3][4]={1,2,3,4,5,6,7,8,9,10,11,12};
int (*pt)[4]=x;
能与数组元素x[2][3]相等的表达式是(A)
A*(*(pt+2)+3); B*(pt+2)+3; C*(pt+2+3) D(*pt+2)+3
42、表示关系X≤Y ≤的C语言表达式为(A)
A(X < =Y)&&(Y < =Z); B(X < =Y)AND(Y < =Z); C(X < =Y < =Z); D(X < =Y)&(Y < =Z)
43、函数printf("\abcd\b\102\103")的输出结果是 (D)
A bc\101\103;
B abcd\102\103;
C abc\102\103;
D bcbc
44、下面说法正确的是 (D)
A程序的执行总是从第一行开始;
B程序的执行总是从第一个函数开始执行;
C程序的执行可以开始于任何一个位置;
D程序的执行总是从main()函数开始执行
45、下列说法中正确的是?
A.C语言程序总是从第一个函数开始执行;
B.在C语言程序中,要调用的函数必须在main()函数中定义;
C.C语言程序总是从main()函数开始执行;
D.C语言程序中的main()函数必须放在程序的开始部分
46、设有说明int (*ptr)[m];,其中的标识符ptr是(C)
A.m个指向整型变量的指针;
B.指向m个整型变量的函数指针;
C.一个指向具有m个整型元素的一维数组的指针;
D.具有m个指针元素的一维指针数组,每个元素都只能指向整型量
47、设i是int型变量,f是float型变量,用下面的语句给这两个变量输入值:
scanf("i=%d,f=%f",&i,&f);
为了把100和765.12分别赋值给i和f,正确的输入是(B)
A.100765.12;
B.i=100,f=765.12;
C.100 765.12;
D.i=100 f=765.12
48、C语言允许函数类型缺省定义,此时函数值隐含的类型是(B )
A.float;
B.int;
C.long;
D.double
49、在C语言中,合法的字符常量是(B)
A.'\084';
B.'\x43';
C.'ab';
D."\0"
50、设a、b和c都是int型变量,且a=3,b=4,c=5,则下列表达式中,值为0的表达式是 (D)
A.'a'&&'b';
B.a<=b;
C.a||b&&c;
D.!(a='a'&&c)
51、用链表表示线性表的优点是( C)
A.便于随机存取;
B.花费的存储空间较顺序存储少;
C.便于插入和删除操作;
D.数据元素的物理顺序与逻辑顺序相同
52、如果定义x=0xffff,则函数printf("%d",x*x)的输出结果是( A )
A.1;
B.128;
C.256;
D.65535
53、以下叙述中正确的是(A )
A.构成C程序的基本单位是函数 B 可以在一个函数中定义另一个函数
C main()函数必须放在其他函数之前
D C函数定义的格式是K&R格式
54、下面程序段的输出结果是(B )
int a=023;
printf("%d\n",--a);
A 23
B 18
C 17
D 012
55、凡是函数中未指定存储类型的局部变量,其隐含的存储类别为 (A)
A 自动(auto)
B 静态(static)
C 外部(extern)
D 寄存器(register)
56、设有如下的变量定义:
unsigned long w=5;double x=1;
则执行printf("%ld\n",s izeof(x)+w);输出的结果是 (B)
A 6
B 13
C 6.0
D 9
57、如果定义变量a,b,c都为整型数据,则执行函数
printf("%d",a=(b=4)+(c=6))的输出结果是 (D )
A 4
B 6
C 2
D 10
58、以下只有在使用时才为该类型变量分配内存的存储类说明是( B)
A.auto和 static B auto和 register C.register和 static D.extern和 register
59、当执行以下程序段时( A)
x=-1;
do { x=x*x;} while(!x);(A)
A 循环体将执行一次
B 循环体将执行两次
C 循环体将执行无限次
D 系统将提示有语法错误
定
60、结构化程序
的三种基本结构是(B)
A 顺序,分枝和选择
B 顺序,选择和循环
C 简单分枝,多重分枝和循环
D 顺序,重复和循环
61、下列叙述中错误的是(C)
A C语句必须以分号结束
B 复合语句在语法上被看作一条语句
C 空语句出现在任何位置都不影响程序运行
D 赋值表达式末尾加分号就构成赋值语句
62、以下不正确的定义语句是 ( B)
A double x[5]={2.0,4.0,6.0,8.0,10.0};
B int y[5]={0,1,3,5,7,9};
C char c1[]={′1′,′2′,′3′,′4′,′5′};
D char c2[]={′\x10′,′\xa′,′\x8′};
63、一个可执行的C程序的开始执行点是(C)
A 程序中第一个语句
B 包含文件的第一个函数
C main()函数
D 程序中的第一个函数
64、数组名作为参数传递给函数,作为该参数的数组名被处理为(D)
A 该数组的长度
B 该数组的元素个数
C 该数组中元素的值
D 该数组的首地址
65、下列标识中合法的用户标识符为(D)
A 0
B 1
C 2
D 无限
66、下列标识中合法的用户标识符为(A)
A year B.long C.7xyz D. struct
67、 C语言程序的基本单位是(B)
A 程序行
B 函数
C 语句
D 字符
68.C语言规定,调用一个函数时,实参变量和形参变量之间的数据传递是( B)
A 地址传递
B 值传递
C 实参数传给形参,并由形参传回来给实参 D由用户指定传递方式
69.以下不正确的叙述是(D ) A在C程序中,逗号运算符的优先级最低 B在C程序中,APH和aph是两个不同的变量C若a和b类型相同,在计算了赋值表达式a=b后b中的值将放入a中,而b中的值不变
D当从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输入实型数值
70.若已定义:
int a[]={0,1,2,3,4,5,6,7,8,9}, *p=a,i;
其中 0≤i≤9, 则对a数组元素不正确的引用是(D )
A a[p-a]
B *(&a[i])
C p[i]
D a[10]
71.在Turbo C环境中,单步执行的键盘快捷键是(C )
A F5
B Shift+F5
C F8
D Ctrl+F9
72.设有如下的函数:( C)
ggg(x)
float x;
{ printf("\n%d",x*x);}
则函数的类型是( )
A 与参数x的类型相同
B void
C int
D 无法确定
73.为了确保自定义函数调用后不返回任何值,则这种函数的类型应定义的类型为(C )
A.extern Bint C void D register
74.若有以下定义和语句:
double r=99,*p=&r;
*p=r;
则下面叙述中正确的是( D ) A以上两处的*p含义相同,都说明给指针变量p赋值
B "double r=99,*p=&r;"中把r的地址值给了p所指的存储单元
C语句"*p=r;"把变量r的值赋给指针变量p
D 语句"*p=r;"取变量r的值放回r中
75.有语句for(i=1;10;++i),其中表达式i=1将被执行(B )次
A 0
B 1
C 无穷次
D 不确定
76.已知int x=10,y=20,z=30;以下语句执行后x,y,z的值是(B )
if(x>y) z=x;x=y;y=z;
A x=10,y=20,z=30
B x=20,y=30,z=30
C x=20,y=30,z=10
D x=20,y=30,z=20
77. 定义char *aa="12345";,则执行语句printf("%c",*aa++);后,正确的输出结果是(A)
A 1
B 2
C 12345
D 2345
78.下列说法中正确的是(D)
A 在程序清单的任何地方都可以插入一个或多个空格符号
B 程序的执行总是从源程序的第一行开始执行的
C 分号和回车符号都可以作为一个语句的结束符号
D 函数名是由程序设计人员按照“标识符”的规则选取的
79. 已知:char a;int b;float c;double d;则表达式2+a+9*b*5*c-5*d的结果是(A)。
A Double
B int
C Float
D char
80.变量的有效范围与其定义位置有关,(B )其作用域在整个源程序文件中都有效。
A.在第一个函数中定义的变量
B.在定义第一个函数之前所定义的变量
C.在主函数中定义的变量
D.在函数中定义的静态变量
81. 设有如下宏定义:(B)
#define N 3
#define Y(n)((N+1)*n)
则执行语句z=2*(Y(5+1));后,z的值为(B)
A 出错
B 42
C 48
D 54
82. 在C语言中,逻辑值"真"用(D)表示
A. 1 B 大于0的数 C 非0的整数 D 非0的数
1以下程序执行后sum的值是( C)
main()
{ int i , sum;
for(i=1;i<6;i++) sum+=i;
printf(“%d\n”,sum);
}
A15 B14 C不确定D0
2下面程序段的运行结果是( C)
char *format="%s,a=%d,b=%d\n";
int a=11,b=10;
a+=b;
printf(format,"a+=b",a,b);
A for,"a+=b",ab
B format,"a+=b"
C a+=b,a=21,b=10
D 以上结果都不对
3 要使下列程序的输出结果是字符-2,则下划线处应填 (A )
jueql(char *s1,char *s2)
{
int i=0;
while(*(s1+i)==*(s2+i))
if(*(s1+i++)=='\0') return 0;
return(*(s1+i)-*(s2+i));
}
main( )
{
printf("%d",jueql("abc",____));
}
A abe
B aba
C cbc
D xbc
4 以下程序的输出结果是(C)
main()
{ int a= -1,b=1;
if((++a<0)&& ! (b--<=0))
printf("%d %d\n",a,b);
else
printf("%d %d\n",b,a);
}
A -1 1 B0 1 C 1 0 D0 0
5 设有如下的函数定义 ( B )
int fun(char *s)
{ char *pt=s;
int i=0;
while(*pt++) i++;
return(i-strlen(s));
}
如果用下面的语句调用上面的函数,则输出的结果是: char str={“Great Wall”};
printf(“%d”,fun(str));
A 1 B0 C9 D10
6 如果用下面的语句调用上面的函数,则输出结果是: char str={"Great Wall"};
printf("%d",fun(str));
main()
{
int a,b,num1,num2,temp;
scanf("%d%d",&num1,&num2);
if(num1
0 strcpy(str,tt[0]);
else strcpy(str,tt[1]);
if(strcmp(tt[2],str)>0) strcpy(str,tt[2]);
printf("%s",str);
}
如果输入的字符串分别是:BASIC ,FOXPRO,FORTRN和COBOL
则程序的运行结果是( B )
A Basic
B foxpro
C fortrn
D cobol
8 以下程序的输出结果是 (A)
main()
{ int x=10;
printf("%x,%d,%o\n",x,x,x);
}
A a,10,12 B10,10,12 C a,10,10
B f,10,12
9 当a=1,b=3,c=5,d=4时,执行下面一段程序后,x的值为(B)
if(a
main()
{
char letter;
int vowel=0;
for(letter='A';________;letter++)
switch(letter)
{
case 'A':
case 'E':
case 'I':
case 'o':
case 'U':vowel++;
}
printf("%d",vowel);
}
A letter<26
B letter<='Z'
C letter<'Z'
D letter<=52
13 下列程序的输出结果是(C)
main()
{char a[10]={9,8,7,6,5,4,3,2,1,0},*p=a+5;
printf(“%d”,*--p);
}
A非法 B a[4]的地址 C 5 D 3
14 请读程序:
main()
{
int x=1,y=0,a=0,b=0;
switch(x)
{ case 1:
switch(y)
{ case 0: a++;break;
case 1: b++;break;
}
case 2:
a++;b++;break;
}
printf("a=%d,b=%d\n",a,b);
}
上面程序输出结果是( A )
A a=2,b=1
B a=1,b=1
C a=1,b=0
D a=2,b=0
15 下面程序的功能是:输入一行以回车结束的字符,分别统计出其中英文字母(letters)、空格(space)、数字(digit)和其它字符(others)的个数。请在处选择正确的答案将程序补充完整。(A)
#include "stdio.h"
main()
{ char c;
int letters=0,space=0,digit=0,others=0;
printf("please input some characters\n");
while( )
{ if((c>='a'&&c<='z')||(c>='A'&&c<='Z'))letters++;
else if(c==' ')space++;
else if(c>='0'&&c<='9')digit++;
else others++;
}
printf("char=%d,space=%d",letters,space);
printf("digit=%d,others=%d\n"digit,others);
}
A (c=getchar())!='\n'
B (c=getchar())=='\n'
C c=getchar()!='\n'
D c=getchar()=='\n'
16 设有定义:int n=0,*p=&n,**q=&p,则下列选项中正确的赋值语句是(D)
A p=1;
B *q=2;
C q=p;
D *p=5;
17 以下程序的输出结果是 ( C )
main( )
{ int x=10;
printf("%d,%d\n",x,x++);
}
A 11,11
B 11,10
C 10,10
D 10,11
18以下程序的输出结果是( C)
fun(int x, int y, int z)
{ z=x*x+y*y; }
main()
{ int a=31;
fun(5,2,a);
printf(“%d”,a);
}
A 0
B 29
C 31
D 无值
19当执行以下程序段时(A )
x=-1;
do { x=x*x;} while(!x);
A 循环体将执行一次B循环体将执行两次C循环体将执行无限次D系统将提示有语法错误
20. 已知字母A的ASCⅡ码为十进制的65,下面程序输出的结果是( A )
#include
main()
{ char c1='A',c2='Y';
printf("%d,%d\n",c1,c2);}
A 65,89
B 65,90
C A,Y
D 因输出格式不合法,输出错误信息
21. 下面程序的功能是把316表示为两个加数的和,使两个加数分别能被13和11整除,请选择填空。(B) #include
main()
{ int i=0,j,k;
do{i++;k=316-13*i;}while(______);
j=k/11;
printf("316=13*%d+11*%d",i,j);
}
A k/11
B k%11
C k/11==0
D k==0
22 下面程序的输出结果是( A )
main()
{ int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a;
printf("%d\n",*(p+2));}
A 3
B 4
C 1
D 2
23. #include
main()
{ char str[]="\"stop!\",he said";
puts(str);
}
程序的运行结果是( C )
A stop!
B "stop!"
C "stop",he said
D he said
24. #include
main()
{
char c;
while((c=getchar())!='\n')
{
if((c>='a'&&c<='z')||(c>='A'&&c<='Z'))
c=c+4;
if(c<'Z'&&c='Z'+4||c>'z') c=c-26;
}
printf("%c",c);
}
}
如果输入的字符串是zebra
则程序的运行结果是( A )
A difve
B Difve
C arbez
D ZEBRA
25 下面的程序(D)
#include
main()
{int x=3,y=0,z=0;
if(x=y+z)printf(”* * * *”);
else printf(”####”);
}
A 有语法错误不能通过编译B输出* * * *
C可以通过编译,但是不能通过连接,因而不能运行D输出####
26、以下程序输出结果是(B)
main ( )
{ int m=5;
if (m++ > 5) printf ("%d\n",m);
else printf ("%d\n",m--);
}
A. 7
B. 6
C. 5
D. 4
27、以下程序的输出结果是__(D)
main()
{ int x=10 ,y=10;
printf("%d%d\n",x--,--y);}
A. 10,10
B. 9,9
C. 9,10
D. 10,9
28、以下程序的输出结果是(D)
main( )
{ int a=-1,b=4,k;
k=(++a<0)&&!(b--<=0);
printf("%d%d%d\n",k,a,b);
A. 1 0 4
B. 1 0 3
C. 0 0 3
D. 0 0 4
29.以下程序的输出结果是(D)。
#include “stdio.h”
main()
{ char str[8]={“abcdefgh”};
printf(“%x\n”,str);
printf(“%x\n”,str+1);
}
如果程序中的第一个printf语句的输出结果是ffee,则第二个printf语句的输出结果是(D)
A、ffcd
B、ffab
C、ffc
D、ffef
30.以下程序的运行结果是(A)。
main()
{ int x=3;
do {
printf(“%d”,x=x%2);
}while(--x);
}
A、1
B、0
C、20
D、死循环
31.以下程序的输出结果是(D)。
char *fun(char(*str)[3])
{ char *pt;
pt=str+3;
return(pt);
}
main()
{ char a[3][3]={…a?,?b?,?c?,?d?,?e?,?f?,?g?,?h?,?i?};
char *pp;
pp=fun(a);
printf(“%s”,pp);
}
A、abcdefghi
B、abc
C、def
D、defghi
32 .要使下列程序的输出结果是字符A,则下划线处应填(B)。main()
{ char x=?b?;
int i=0;
do{
--x
}while( );
printf(“%C”,x);
}
A、i++<31
B、i++<32
C、i<31
D、i<32
33.main()
{ int a=2,i=0,tn=0,sn=0;
while(i<3)
{ tn=tn+a;
sn=sn+tn;
a=a*10;
i++;
}
printf(“%d”,sn);
}
程序的运行结果是(C)。
A、244
B、200
C、246
D、248
34 main()
{ char str[80];
scanf(“%s”,str);
insert(str);
}
insert(char s[])
{
int i;
for(i=strlen(s);i>0;i--)
{ s[2*i]=s[i];
s[2*i-1]=??;
}
printf(“%s”,s);
}
如果输入的字符是abcd
则程序的运行结果是(D)。
A、a bc d
B、abcd
C、ab cd
D、a b c d
35)下面程序的运行结果是(D)
#include
main()
{ int y=10;
do{y--;}while(--y);
printf("%d\n",y--);
}
A)-1 B) 1 C)8 D)0
36)有如下程序(C)
int a[10]={1,2,3,4,5,6,7,8,9,10};
int *p=&a[3],b;b=p[5];
则b的值是(C)
A) 5 B) 6 C)9 D)8
37)下列程序的输出结果是(c)
main()
{ double d=3.2; int x,y;
x=1.2; y=(x+3.8)/5.0;
printf("%d\n", d*y);
}
A)3 B)3.2 C)0 D)3.07
38)执行以下程序后,a,b的值分别为(C)
main()
{ int a,b,k=4,m=6,*p1=&k,*p2=&m;
a=p1==&m;
b=(*p1)/(*p2)+7;
printf("a=%d\n",a);
printf("b=%d\n",b);
}
A)-1,5 B)1,6 C)0,7 D)4,10
39)若有以下程序
#include
int a[]={2,4,6,8};
main()
{ int i;
int *p=a;
for(i=0;i<4;i++)a[i]=*p;
printf("%d\n",a[2]);
}
上面程序输出结果是(D)
A)6 B)8 C)4 D)2
40)以下程序的输出结果是(B)
main()
{int i,k,a[10],p[3]:
k=5;
for (i=0;i<10;i)a[i]=i;
for (i=0;i<3;i)p[i]=a[i*(i+1)];
for (i=0;i<3;i)k+=p[i]*2;
printf(“%d\n”,k);
}
A)20 B)21 C)22 D)23
41.在下列程序中如果输入是1234,输出结果也是1234,则下划线处应填(D)。#include
#define MAXS 40
char stack[MAXS];
int top=0;
int push(char x)
{ if(top>=MAXS)
return 1;
stack[ ]=x;
return 0;
}
main()
{ char c;
for(;(c=getchar())!=?\n?; )
push(c);
printf(“%s”,stack);
}
A、x
B、x++
C、top
D、top++
42运行完下面的C语言程序段后k的值是()
int k = 4;
(k++)+(k++)+k++)
A 4
B 5
C 6
D 7
43 下面程序运行后,输出的结果是(B)
main()
{int x=10,y=3;
printf("%d\n",y=x%y);
}
A) 0 B) 1 C) 3 D)不确定的值
44 运行下面程序后,a的值为(11)
main()
{
int a,b;
for(a=1,b=1;a<=10;a++)
{if(b>=20)break;
if(b%3==1)
{b=3;
continue;
}
b+=5;
}
printf("%d\n",a);
}
编程题:
函数fun计算从1到10之间所有奇数之和并输出
注意:部分源程序已经存在文件中。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句,不得删除花括号中的原始注释。
#include
int fun( int m)
{ /****/
int s=0;
int i;
for (i=1;i<=m;i++)
if (i%2==1) s=s+i;
return s;
/****/}
main()
{
int n,s;void NONO();
n=10;
s=fun(n);
printf("奇数之和=%d\n",s);
NONO();
}
void NONO()
{
FILE *rf, *wf; int a;
rf=fopen("d:\\programC\\1\\in.dat","r");
wf=fopen("d:\\programC\\1\\out.dat","w");
for(int i=0;i<5;i++)
{
fscanf(rf,"%d",&a);
fprintf(wf,"%d\n",fun(a));
}
fclose(rf);
fclose(wf);
}
编写一个函数,实现用 "气泡法" 对输入的10个整数按由小到大顺序排列
注意:部分源程序已经存在文件中。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句,不得删除花括号中的原始注释。
#define N 10
#include"stdio.h"
void sort(int a[ ],int n)
{ /****/
int i,j,t;
for (i=0;ia[j+1])
{t=a[j];a[j]=a[j+1];a[j+1]=t;}}
/****/}
main( )
{
int a[N],i; void NONO();
printf("Input %d numbers:\n", N );
for(i=0; i
int convert(char *p)
{/****/
int k;
k=*p-'0';
while(*++p)
{k=k*8+*p-'0';}
return k;
/****/}
main()
{
char s[6];void NONO();
int a;
printf("请输入一个8进制数字的字符串: ");
gets(s);
a=convert(s);
printf("%d\n",a);
NONO();
}
void NONO()
{
FILE *rf, *wf; int a=0;
char s[6];
rf=fopen("d:\\programC\\3\\in.dat","r");
wf=fopen("d:\\programC\\3\\out.dat","w");
for(int i=0;i<5;i++)
{
fscanf(rf,"%s",s);
a=convert(s);
fprintf(wf,"%d\n",a);
}
fclose(rf);
fclose(wf);
}
输入3个连续变化的半径值(它们为一等差数列),函数fun返回所有圆的面积的和,:"半径值的变化用循环结构表示"。(例如输入的半径分别为"0.5,1.0,1.5" 输出 "总面积:10.99")
注意:部分源程序已经存在文件中。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句,不得删除花括号中的原始注释。
#include
float fun(float firstR, float thridR, float D)
{/****/
float s=0, k;
for (k=firstR;k<=thridR;k=k+D)
s+=3.14*k*k;
return s;
/****/}
main()
{
float firR;
float secR;
float thrR;
float sumS;
float d; void NONO();
printf("\n 请输入3个成等差数列的半径值:");
scanf("%f,%f,%f",&firR,&secR,&thrR);
d=secR-firR;
sumS=fun(firR,thrR,d);
printf("总面积:%.2f\n",sumS);
NONO();
}
void NONO()
{
FILE *wf,*rf;
float x[3]; float d,sS=0;
rf=fopen("d:\\programC\\1\\in.dat","r");
wf=fopen("d:\\programC\\1\\out.dat","w");
for(int i=0;i<5;i++)
{
for(int j=0;j<3;j++)
fscanf(rf,"%f",&x[j]);
d=x[1]-x[0];
sS=fun(x[0],x[2],d);
fprintf(wf,"%.2f\n",sS);
}
fclose(rf);
fclose(wf);
}
从键盘输入一串字母字符串,将其中的小写字母改成对应的大写字母,并输出改变后的这串字符(例如输入ABCdef 输出为ABCDEF)
注意:部分源程序已经存在文件中。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句,不得删除花括号中的原始注释。
#include
void fun(char *s)
{/****/
while (*s)
{if ((*s)>='a' &&(*s)<='z')
*s=*s-32;
s++;}
/****/}
main()
{
char s[50]; void NONO();
gets(s);
fun(s);
puts(s);
NONO();
}
void NONO()
{
FILE *rf, *wf;
char s[50];
rf=fopen("d:\\programC\\2\\in.dat","r");
wf=fopen("d:\\programC\\2\\out.dat","w");
for(int i=0;i<5;i++)
{
fscanf(rf,"%s",s);
fun(s);
fprintf(wf,"%s\n",s);
}
fclose(rf);
fclose(wf);
}
输出1到100之内共有多少个完数。(完数是指一个数的因子之和等于这个数本身,例如6=1+2+3 那么6就是一个完数)。
注意:部分源程序已经存在文件中。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句,不得删除花括号中的原始注释。
#include
int fun( int N)
{/****/
int i,n, k=0,sum;
for (n=1;n<=N;i++)
{sum=0;
for (i=1;i<=n/2;i++)
if (n%i==0) sum+=i;
if (sum==n) k++;
}
/****/}
main()
{
int sum=0,M=100; void NONO();
sum=fun(M);
printf("共有完数个数为:%d\n",sum);
NONO();
}
void NONO()
{
FILE *rf, *wf; int m,n=0;
rf=fopen("d:\\programC\\3\\in.dat","r");
wf=fopen("d:\\programC\\3\\out.dat","w");
for(int i=0;i<5;i++)
{
fscanf(rf,"%d",&m);
n=fun(m);
fprintf(wf,"%d\n",n);
}
fclose(rf);
fclose(wf);
}
请编写函数 fun, 其功能是:计算并输出下列多项式的值:
S=1+1/1!+1/2!+1/3!+1/4!+...+1/n!
注意:部分源程序已经存在文件中。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句,不得删除花括号中的原始注释。
#include
double fun(int n)
{/****/
double sum=1;
for (i=1;i<=n;i++)
{ t=t*i;
sum=sum+1.0/t;}
return sum;
/****/}
main( )
{
int n; void NONO();
double s;
printf("Input n:");
scanf("%d", &n);
s=fun(n);
printf("s=%f\n", s);
NONO();
}
void NONO()
{
FILE *rf, *wf; int n; double s;
rf=fopen("d:\\programC\\2\\in.dat","r");
wf=fopen("d:\\programC\\2\\out.dat","w");
for(int i=0;i<5;i++)
{
fscanf(rf,"%d",&n);
s=fun(n);
fprintf(wf,"%f\n",s);
}
fclose(rf);
fclose(wf);
}
请编写函数,将含有数字的字符串,实现将字符串中从左至右的数字提出并按提出顺序组成一个新的整型数据。 (要求使用字符数组和字符指针来实现)
注意:部分源程序已经存在文件中。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句,不得删除花括号中的原始注释。
#include
int find(char *p)
int t,s=0;
while (*p)
{if ((*p)>='0' &&(*p)<='9')
{t=(*p)-'0';s=s*10+t;}
p++;}
return s;
/****/}
void main( )
{
char s[80]; void NONO();
printf("请输入一串含有数字的字符串:\n");
gets(s);
printf("字符串%s中的数字字符组成的整数为:\n",s);
printf("%d\n",find(s));
NONO();
}
void NONO()
{
FILE *rf, *wf;
char a[80];
rf=fopen("d:\\programC\\3\\in.dat","r");
wf=fopen("d:\\programC\\3\\out.dat","w");
for(int i=0;i<5;i++)
{
fscanf(rf,"%s",a);
fprintf(wf,"%d\n",find(a));
}
fclose(rf);
fclose(wf);
}
在主函数中输入整数n,调用函数sum,求1+2*2+3*3+...+n*n的和。(要求在主函数中输出结果)
注意:部分源程序已经存在文件中。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句,不得删除花括号中的原始注释。
#include
int sum(int m)
{ /****/
for (i=1;i<=m;i++)
s=s+i*i;
return s;
/****/}
main()
{
int n,t;void NONO();
printf("输入n:");
scanf("%d",&n);
t=sum(n);
printf("和是%d",t);
NONO();
}
void NONO()
{
FILE *rf, *wf;
int k;
rf=fopen("d:\\programC\\1\\in.dat","r");
wf=fopen("d:\\programC\\1\\out.dat","w");
for(int i=0;i<5;i++)
{
fscanf(rf,"%d",&k);
fprintf(wf,"%d\n",sum(k));
}
fclose(rf);
fclose(wf);
}
一个数组中存放5名职工的工资,调用函数计算低于平均工资的人数。(要求在主函数中完成工资的输入和结果的输出)
注意:部分源程序已经存在文件中。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句,不得删除花括号中的原始注释。
#include
int fun(float array[],int n)
{/****/
int i,k=0;
float s=0;
for (i=0;i
void fun(char *s,char *t)
{/****/
while (*s)
*t++=*s++;
*t='\0';
/****/}
main()
{
char s1[100],s2[100];void NONO();
printf("input s1:\n");
gets(s1);
fun(s1,s2);
printf("s2 is %s\n",s2);
NONO();
}
void NONO()
{
FILE *rf, *wf;
char a1[100],a2[100];
rf=fopen("d:\\programC\\3\\in.dat","r");
wf=fopen("d:\\programC\\3\\out.dat","w");
for(int i=0;i<5;i++)
{
fscanf(rf,"%s",a1);
fun(a1,a2);
fprintf(wf,"%s\n",a2);
}
fclose(rf);
fclose(wf);
}