c语言主次函数计算字母个数,C语言考试必看题型

1、当c的值不为0时,在下列选项中能正确将c的值赋给变量a、b的是:答案:(C)

A、c=b=a;

B、(a=c)||(b=c);

C、(a=c)&&(b=c);

D、a=c=b;

2、程序

char c[5]={‘a’,’b’,’\0’,’c’,’\0’};

printf(“%s”,c);

的运行结果是:答案:(D)

A、'a''b'

B、abc

C、ab c

D、ab

3、将三个数排序需要比较______次。答案:(B)

A、2

B、3

C、4

D、不确定

4、请读程序片段(字符串内没有空格字符):

printf("%d ", strlen("ATS12"));

上面程序片段的输出结果是:答案:(B)

A、11

B、5

C、6

D、8

5、以下叙述中错误的是:答案:(D)

A、C程序必须由一个或者一个以上的函数组成。

B、函数调用可以作为一个独立的语句存在。

C、若函数有返回值,必须通过return 语句返回。

D、函数形参的值也可以传回给对应的实参。

6、当调用函数时,实参是一个数组名,则向函数传送的是:答案:(B)

A、数组的长度

B、数组的首地址

C、数组每一个元素的地址

D、数组每个元素的值

7、设变量x和y均已经正确定义并赋值。以下if语句中,在编译时将产生错误信息的是:答案:(C)

A、if(x++);

B、if(x>y

&&y!=0)x++;

C、if(x>0) x-- else y++;

D、if(y<0){;} else x++;

8、对两个字符数组a和b进行初始化

char a[]="ABCDEF";

char b[]={'A','B','C','D','E','F'};

则以下叙述正确的是:答案:(D)

A、a与b数组完全相同

B、a与b长度相同

C、a和b中都存放字符串

D、a数组比b数组长度长

9、设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的值为:答案:(C)

A、0

B、1

C、2

D、3

10、在一个C程序中:答案:(B)

A、main函数必须出现在所有函数之前;

B、main函数可以在任何地方出现;

C、main函数必须出现在所有函数之后;

D、main函数必须出现在固定位置

11、若变量已正确定义,以下非法的表达式是:答案:(B)

A、a/=b+c

B、a%(4.0)

C、a=1/2*(x=y=20,x*3)

D、a=b=c

12、下列说法中正确的是:答案:(D)

A、一个数组能够存储许多不同类型的值

B、数组的下标可以是float数据类型

C、如果初始化值列表中的个数少于数组的元素的个数,C编译器会自动补齐

D、初始化值列表中的值的个数多于数组元素的个数是错误的

13、表达式3.6-5/2+1.2+5%2的值是:答案:(D)

A、4.3

B、4.8

C、3.3

D、3.8

14、设有定义:int k=0;以下选项的四个表达式中与其他三个表达式的值不相同的是:答案:(A)

A、k++

B、k+=1

C、++k

D、k+1

15、在下列程序段中,枚举变量 c1的值是:

enum color {

red,yellow,blue=4,green,white}c1;

c1=yellow;

c1=white;答案:(D)

A、1

B、3

C、5

D、6

16、以下程序的输出结果为:

main( )

{

int i=010,j=10;

printf("%d,%d ",i++,j--);

}答案:(C)

A、11,9

B、9,10

C、8,10

D、9,9

17、以下错误的if语句是:答案:(C)

A、if(x>y) z=x;

B、if(x==y) z=0;

C、if(x!=y) printf("%d",x) else printf("%d",y);

D、if(x < y) { x++;y--;}

18、执行下面的程序段后,变量k中的值为

s[0]=k;

k=s[1]*10;答案:(A)

A、不定值

B、33

C、30

D、10

19、判断字符串a是否大于b,应当使用:答案:(D)

A、if (a>b)

B、if (strcmp(a,b))

C、if (strcmp(b,a)>0)

D、if (strcmp(a,b)>0)

20、下面不正确的字符串常量是:答案:(A)

A、'abc'

B、"12'12"

C、"0"

D、" "

21、请读程序:

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 ",a,b);

}答案:(A)

A、a=2,b=1

B、a=1,b=1

C、a=1,b=0

D、a=2,b=0

22、定义由n个指向整形数据的指针组成的数组p,其正确的方式为:答案:(C)

A、int p;

B、int (*p)[n];

C、int *p[n];

D、int (*p)( );

23、已知职工记录描述如下,在C中,系统为变量w分配( )字节的空间。

struct worker

{

int no;

char name[20];

char sex;

} w;答案:(A)

A、28

B、20

C、25

D、6

24、设有以下定义:

#define N 3

#define Y(n) ((N+1)*n)

则执行语句:z=2 * (N+Y(5+1));后,z的值为:答案:(C)

A、出错

B、42

C、48

D、54

25、有定义语句:int b;char c[10];,则正确的输入语句是:答案:(B)

A、scanf("%d%s",&b,&c);

B、scanf("%d%s",&b,c);

C、scanf("%d%s",b,c);

D、scanf("%d%s",b,&c);

26、设有说明 int (*ptr)();其中标识符ptr是:答案:(B)

A、是一个指向整形变量的指针

B、是一个指针,它指向一个函数值是int的函数

C、是一个函数名

D、定义不合法

27、语句for(a=0,b=0;b!=100&&a<5;a++)scanf("%d",&b);

scanf最多可执行次数为:答案:(C)

A、4

B、6

C、5

D、1

28、以下程序的输出结果是:

main()

{

int x=10,y=10,i;

for(i=0;x>8;y=++i)

printf("%d %d ",x--,y);

}答案:(D)

A、10 1 9 2

B、9 8 7 6

C、10 9 9 0

D、10 10 9 1

29、以下程序的输出结果为:int i;

void prt( )

{

for(i=5;i<8;i++)

printf("%c",'*');

8  printf(" ");

}

main( )

{

for(i=5;i<=8;i++) prt( );

}答案:(A)

A、***

B、*** *** *** ***

C、*** ***

D、* * *

30、设 int x=1, y=1; 表达式(!x||y--)的值是:答案:(B)

A、0

B、1

C、2

D、-1

31、以下程序的输出结果为:

#define ADD(x) x*x

main( )

{

int

a=4,b=6,c=7,d=ADD(a+b)*c;

printf("d=%d",d);

}答案:(A)

A、d=70

B、d=80

C、d=140

D、d=700

32、若程序中定义了以下函数

double myadd(double a,double b)

{ return (a+b); }

并将其放在调用语句之后,则在调用之前应该对该函数进行说明,以下选项中错误的说明是:答案:(A)

A、double myadd(double a,b);

B、double myadd(double,double);

C、double myadd(double b,double a);

D、double myadd(double x,double y);

33、以下代码的输出结果为:

void fun(int x,int y)

{ int temp;

if(x < y)

{ temp = x ; x = y ; y = temp; }

}

main()

{

int a = 4,b = 3,c = 5;

fun(a,b);fun(a,c);fun(b,c);

printf("%d,%d,%d ",a,b,c);

}答案:(C)

A、3,4,5

B、5,3,4

C、4,3,5

D、5,4,3

34、下面程序的输出是:

fun3(int x)

{

static int a=3;

a+=x;

return(a);

}

main()

{

int k=2, m=1, n;

n=fun3(k);

n=fun3(m);

printf("%d ",n);

}答案:(C)

A、3

B、4

C、6

D、9

35、以下程序的输出结果是:

main()

{

int a=5,b=4,c=6,d;

printf("%d

",d=a>b?(a>c?a:c):(b));

}答案:(C)

A、5

B、4

C、6

D、不确定

36、现有一个函数的功能是求出一个元素在数组中的索引,以下该函数的声明正确的是:答案:(A)

A、int getIndex(int *a,int count,int n);

B、void getIndex(int a[],int count,int n);

C、int getIndex(int a[],int count);

D、void getIndex(int *a,int count);

37、有以下程序

main()

{

char ch[]="uvwxyz",*pc;

pc=ch;

printf(" %c ",*(pc+5));

}

程序运行后的输出结果是:答案:(A)

A、z

B、0

C、元素ch[5]的地址

D、字符y的地址

38、下面程序的功能是输出以下形式的金字塔图案是:

*

***

*****

*******

main()

{

int i,j;

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

{

for(j=1;j<=4-i;j++)

printf(" ");

for(j=1;j<=____;j++) printf("*");

printf(" ");

}

}

在下划线处应填入的是:答案:(B)

A、i

B、2*i-1

C、2*i+1

D、i+2

39、动态分配内存,定义一个int型的包含12个元素的数组,如下定义正确的是:答案:(A)

A、int *p = malloc(sizeof(int)*12);

B、int a[12] = malloc(12,sizeof,int);

C、int a[12] = calloc(12,sizeof(int));

D、int *p = calloc(sizeof(int)*12)

40、设变量定义为int

x,*p=&x;则&*p相当于:答案:(A)

A、p

B、*p

C、x

D、*&x

※ 判断题(共10题,每题2分)

1、增1减1运算符的前缀运算和后缀运算的表达式值是相同的。答案:(F)

正确

错误

2、若有定义和语句:int

a[3][3]={{3,5},{8,9},{12,35}},i,sum=0;for(i=0;i<3;i++)

sum+=a[i][2-i];则sum=21。答案:(T)

正确

错误

3、假定int类型变量占用两个字节,若有定义:int

x[10]={0,2,4};,则数组x在内存中所占字节数是6。答案:(F)

正确

错误

4、若有定义:char *p(char a[10]);则p是函数名。答案:(T)

正确

错误

5、若有宏定义:#define S(a,b) t=a;a=b;b=t由于变量t没定义,所以此宏定义是错误的。答案:(F)

正确

错误

6、break语句用在循环体中,可结束本层循环,continue语句用在循环体中,可结束本次循环。答案:(T)

正确

错误

7、通过return语句,函数可以带回一个或一个以上的返回值。答案:(F)

正确

错误

8、直接访问就是直接利用变量的地址进行存取直接访问答案:(T)

正确

错误

9、函数strlen("ASDFG ")的值是7。答案:(F)

正确

错误

10、a=b=c=5可以理解为a=(b=(c=5))。答案:(T)

正确

错误

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值