fudge函数C语言,C语言必备例题

C语言例题

1.有以下程序 (03-3-26)

main()

{ char a,b,c*d;

a=’\’; b=’\xbc’;

c=’\0xab’; d=”\0127”;

printf("%c %c %c%c\n",a,b,c,*d);

}

编译时出现错误,以下叙述中正确的是

A.程序中只有a=’\’;语句不正确B.b=’\xbc’; 语句不正确

C.d=”\0127”; 语句不正确D. a=’\’;和c=’\0xab’; 语句不正确

2.程序执行结果(宏替换)

#include

#define FUDGE(y) 2.84+y

#define PR(a)/ printf(“%d”,(int)(a))

#define PRINT1(a) PR(a);putchar(‘\n’);

main()

{ int x=2;

PRINT1(FUDGE(5)*x);

}

A.11 B.12C.13 D.15

3.以下非法的赋值语句是

A.n=(i=2,++i);

B.j++;

B.++(i+1);

D.x=j>0;

4.设a和b均为double型变量,且a=5.5、b=2.5,则表达式(int)a+b/b的值是(02-9-16)

A.6.500000 B.6 C.5.500000 D.6.00000

5.已有定义:int x=3, y=4, z=5;则表达式!(x+y)+z-1&&y+z/2的值是(02-9-21)

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

6.以下选项中,与k=n++完全等价的表达式是(02-9-23)

A.k=n,n=n+1;

B.n=n+1,k=n;

C.k=++n;

D.k+=n+1;

7.变量范围)(1;6,3;2,3)

#include

main()

{ int I=1; j=3;

printf(“%d“,i++);

{ int I=0;

I+=j*2;

Printf(“%d,%d”,I,j);

}

printf(“%d,%d\n”,I,j);

}

8.有以下程序(03-9-14)

main()

{int a; char c=10;

float f=100.0; double x;

a=f/=c*(x=6.5);

printf(“%d %d %3.1f %3.1f\n”,a,c,f,x);

}

程序运行后输出结果是

A.1 65 1 6.5 B.1 65 1.5 6.5 C.1 65 1.0 6.5 D.2 65 1.5 6.5

9.若有以下程序段(n所赋的是8进制数)(03-4-16)

int m=32767;n=032767;

printf("%d,%o\n",m,n);

其输出结果为:

A.32767, 32767 B.32767,032767 C. 32767,77777 D. 32767,077777

10.有以下程序(03-9-16 )短路

main()

{int a=1,b=2,m=0,n=0,k;

k=(n=b>5)||(m=a

printf(“%d, %d\n”,k,m);

}

程序运行后输出结果是

A.0,0 B.0,1 C.1,0 D.1,1

11.输出结果(03-9-18)

int x=2002,y=2003;

printf("%d \n",(x,y,x+y));

12.若float x; x已赋值,能将x保留小数点后两位,并将第三位四舍五入的是(03-9-19)

A.x=x*100+0.5/100.0; B.x=(x*100+0.5)/100.0;

C.x=(int)(x*100+0.5)/100.0; D.x=(x/100+0.5)*100.0;

13.有以下程序(03-9-30)

#include

main()

{printf("%d \n",NULL); }

输出结果为

A.0 B.1 C.-1 D.NULL没定义,出错

14.要求程序的功能是计算:

blog_a165ace2010109vm.html(03-9-24)

main()

{int n;float s;

s=1.0;

for(n=10;n>1;n--) s=s+1/n;

printf("%6.4f \n",s);

}

程序运行后输出结果错误,导致错误结果的程序行是

A.s=1.0; B. for(n=10;n>1;n--)

C.s=s+1/n;D.printf(“%6.4f \n”,s);

15.输出结果(03-9-6)

main()

{int p=30;

printf("%d \n",(p/3>0 ? p/10 : p%3));

}

16.(静态变量)(8,17)

#include

main()

{ int k=4,m=1,p;

p=func(k,m);

printf(“%d”,p);

p=func(k,m);

printf(“%d\n”,p);

}

func(a,b)

int a,b;

{ static int m=0,I=2;

I+=m+1;

M=I+a+b;

Return(m);

}

17.输出结果(03-9-t-14)

int a=5;

fun(int b)

{static int a=10;

a+=b++;

printf("%d\n",a);

}

main()

{int c=20;

fun(c);

a+=c++;

printf("%d \n",a);

}

30 25

18.有以下程序 (03-4-44)

main(int argc, char *argv[])

{ int n,i=0;

while(argv[1][i]!=’\0’) { n=fun(); i++; }

printf("%d ",n*argc);

}

int fun()

{static int s=0;

s+=1;

return s;

}

若程序经编译、连接后生成可执行文件exam.exe,则键入一下命令行

exam 123执行后输出结果是

A.6 B.8 C.3 D.4

19.输出结果(3.141592 )( m2-47 )

#include

#include

main()

{int s=1;

float n=1.0,pi=0.0;

double t=1.0;

while(fabs(t)>=2e-6)

{pi+=t;

n+=2;

s=-s;

t=s/n;

}

pi *= 4;

print(“pi=%d.6f \n”,pi);

}

20.输出结果

int x =3, y=0;

printf(“%d,%d”,-1>x>-10&&1y>-10&&1

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

21.如下程序段

int m=0xabc, n=0xabc;

m-=n;

printf("%X\n",m);

执行结果是:

A. 0X0 B.0x0 C.0 D.0xABC

22.下列关于单目运算符++、--的叙述中正确的是

a)他们的运算对象可以是任何变量和常量

b)他们的运算对象可以是char型变量和int型变量,但不能是float型变量

c)他们的运算对象可以是int型变量,但不能是double型变量和float型变量

d)他们的运算对象可以是char型变量、int型变量和float型变量

23.关于指针的说法,错误一条为:

a)变量的指针就是变量的地址

b)可以将一个整型量或任何其它非地址类型的数据付给一个指针量

c)一个指针变量只能指向统一类型的变量

d)指针变量中只能存放地址(指针)

24.关于scanf格式字符的叙述中,错误的一条是

a)对unsigned型数据,可以用%d或%u、%x格式输入

b)d格式字符用来输入十进制整数

c)o格式字符用来输入八进制整数

d)x格式字符用来输入十六进制整数

25.在下列叙述中,错误的一条是

a)主函数main()中定义的变量在整个文件或程序中有效

b)不同函数中,可以使用相同名字的变量

c)形式参数是局部变量

d)在一个函数内部,可在符合语句中定义变量,这些变量只在本复合语句中有效。

26.下列语句中,其含义为“p为指向含n个元素的一排数组的指针变量”的定义语句是

a)int p[n];

b)int *p( ) ;

c)int *p[n];

d)int (*p)[n];

27.设有语句char a=’\72’;,则变量a

(八进制表示)

A.包含1个字符

B.包含2个字符

C.包含3个字符

D.说法不合法

28.下列叙述错误的一条是(m3-48)

a)关系表达式的值是一个逻辑值,即“真”或“假”,可付给一个逻辑变量

b)数组必须先定义,后使用,并且只能逐个引用数组元素,而不能一次引用整个数组

c)在C语言中,判断一个量是否为“真”时,用0代表“假”,以1代表“真”

d)将字符串变量赋给字符数组时,必须在字符串后加’\0’,表示字符串结束。

29.以下叙述中不正确的是(03-4-49)

a)C语言中的文本文件以ASCII码形式存储数据

b)C语言中对二进制文件的访问速度比文本文件快

c)C语言中,随机读写方式不适用于文本文件

d)C语言中,顺序读写方式不适用于而进制文件

30.下列语句中不正确的是

a)static int a[5] = {1,2,3,4,5}

b)static int a[5] = {1,2,3}

c)static int a[] = {0,0,0,0,0}

d)static int a[5] = {0*5}

31.若要说明一个类型名STP,使得定义语句STP s;等价于char *s;以下选项中正确的是(03-4-46)

A. typedef STP char *s;

B.typedef *char STP;

C. typedef STP *char;

D.typedef char *STP;

32.设char型变量x中的值为10100111,则表达式(2+x)^(~3)的值是(03-4-48)

A.10101001 B.10101000 C.11111101 D.01010101

33.若输入60和13,以下程序的输出结果为

#define SURPLUS(a,b) ((a)%(b))

main()

{int a,b;

scanf(“%d,%d”,&a,&b);

printf(“\n”,SURPLUS(a,b));

}

A.60 B.13 C.73 D.8

34.程序执行输出结果

#include

main()

{int a=2,c=5;

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

A. a=%2, b=%5 B. a=2, b=5 C. a=%%d, b=%%d D. a=%d, b=%d

35.程序执行输出结果

#include

main()

{int a,b,d=241;

a=d/100%9;

b=(-1)&&(-1);

printf(“%d,%d\n”,a,b);

}

A.6,1 B.2,1 C.6,0 D.2,0

36.程序执行输出结果

main()

{unsigned int a=65535;

int b=-2;

printf(“\n a=%d, %u;b=%d, %u”,a,a,b,b);

}

A. –1,65535;-2,65534 B. 65535,65535;-2,65534

C. 65535,65535;65534,65534 D. -1,65535;65534,65534

37.选择正确语句

a)static char str[] = “China”;

b)static char str[] ;str= “China”;

c)static char str1[5],str2[]={ “China”};str1=str2;

d)static char str1[],str2[]; str2 = {“China”};strcpy(str1,str2);

38.执行结果( m3-24)宏、变量

#define GZ 30

main()

{int num,total,gz;

gz=40;num=10;

total=num*GZ;

printf(“total = %d\n",total);

}

A.total=40 B.total=300 C.total=10 D.total=400

39.执行结果( m3-25)运算符结合

main()

{int x,y,z;

x=0;y=z=-1;

x+=-z---y;

printf("x = %d\n",x);

}

A.x=4 B.x=0 C.x=2 D.x=3

40.以下叙述中,正确的一条是(m3-32)

a)语句”goto 12;”是合法的

b)for(;;)语句相当于while(1)语句

c)if(表达式)语句中,表达式的类型只限于逻辑表达式

d)break语句可用于程序的任何地方,以终止程序的执行

41.执行结果(m3-33)位操作

y=5;p=&y;x=*p++;

A.x=5,y=5 B.x=5,y=6 C.x=6,y=5 D.x=6,y=6

42.执行结果(m4-25)

int x=23;

do

{printf("- ",x--);}

while(!x);

A.打印出321 B.打印出23 C.不打印任何内容D.陷入死循环

43.输出结果(m4-26)

printf("%d \n",strlen(“\t\”\065\xff\n”);

A. 5 B.14 C.8 D.输出项不合法,无法正常输出

44.设有如下枚举类型定义:(m4-28)

enum language{Basic=3,Pascal,Ada=100,COBOL,Fortran};

枚举里Fortran的值为

A.4 B.7 C.102 D.103

45.标准库函数fgets(s,n,f)的功能是(m4-29)

A.从文件f中读取长度为n的字符串存放指针s所指的内存

B.从文件f中读取长度不超过n-1的字符串存放指针s所指的内存

C.从文件f中读取n个字符串存放指针s所指的内存

D.从文件f中读取长度为n-1的字符串存放指针s所指的内存

46.字符(char)型数据在微机内存中的存储形式是(m4-35)

A.反码B.补码C.EBCDIC码D.ASCII码

47.C语言规定,程序中各函数之间(m4-37)

a)即允许直接递归调用也允许间接递归调用

b)不允许直接递归调用也不允许间接递归调用

c)允许直接递归调用不允许间接递归调用

d)不允许直接递归调用允许间接递归调用

48.设有static char str[]=”Beijing”; (m4-40)

则执行printf("%d \n",strlen(strcpy(str,”China”)));

后输出结果为

A.5 B.6 C.12 D.14

49.下面函数的功能是(m4-43)

sss(s,t)

char *s,*t;

{while((*s)&&(*t)&&(*t++= = *s++));

return(*s-*t);

}

A.球字符串的长度B.比较两个字符串的大小

C.将字符串s复制到字符串t中D.将字符串s接续到字符串t中

50.请选出以下程序段的输出结果(m4-47)

#include

main()

{char s1[10],s3[10],s3[10],s4[10];

scanf(“%s%s”,s1,s2);gets(s3);gets(s4);

puts(s1); puts(s2); puts(s3); puts(s4);

}

输入数据如下:(此处代表回车符)

aaaa bbbb

cccc dddd

A

B

C

D

aaaa

aaaa

Aaaa

aaaa bbbb

bbbb

bbbb

Bbbb

cccc

cccc

cccc dddd

dddd

cccc dddd

dddd

Eeee

51.请选出以下程序段的输出结果(m4-48)

#include

fun(itn *s,int n1,int n2)

{int i,j,t;

i=n1;j=n2;

while(i

{t=*(s+i);*(s+i)=*(s+j);*(s+j)=t;

i++;j--;

}

}

main()

{int a[10]={1,2,3,4,5,6,7,8,9,0},i,*p=a;

fun(p,0,3);fun(p,4,9);fun(p,0,9);

for(i=0;i<10;i++) printf("%d ",*(a+i));

printf(“\n”);

}

A.0 9 8 7 6 5 4 3 2 1 B.4 3 2 1 0 9 8 7 6 5

C.5 6 7 8 9 0 1 2 3 4 D.0 9 8 7 6 5 1 2 3 4

52.请选出以下程序段的输出结果(m4-49)

#include

main()

{int a[]={1,2,3,4},i;

int x=0;

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

{sub(a,x);printf("%d",x);}

printf(“\n”);

}

sub(int *s,int y)

{static int t=3;

y=s[t];t--;

}

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

53.已有定义如下:

struct node

{int data;

struct node *next;

}*p;

以下语句调用malloc函数,使指针p指向一个具有struct node类型的动态存储空间。请填空。

p=(struct node*)malloc();

sizeof(struct node)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值