c语言中逻辑真等价于非零的整数6,一套基础的C语言笔试题

https://blog.csdn.net/tiany524/article/details/6538519

每个5分共100分。错选、多选、少选或不选均不得分。

1.[单选题]一个C程序的执行是从( A )

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

B:本程序文件的第一个函数开始,到本程序文件的最后一个函数结束

C:本程序的main函数开始,到本程序文件的最后一个函数结束

D:本程序文件的第一个函数开始,到本程序main函数结束

2.[单选题]在C语言中,要求运算数必须是整型的运算符是( D )

A:/

B:++

C:!=

D:%

3.[单选题]C语言中,逻辑"真"等价于( C )

A:大于零的数

B:大于零的整数

C:非零的数

D:非零的整数

4.[单选题]若希望当A的值为奇数时,表达式的值为"真",A的值为偶数时,表达式的值为"假"。则以下不能满足要求的表达式为( C )

A:A%2 == 1

B:! (A%2==0)

C:! (A%2)

D:A%2

5.[单选题]以下程序的运行结果是( B )。

int main( void ){

int m = 5;

if ( m++ > 5) printf("%d/n", m);

else printf("%d/n", --m);

}

A:4

B:5

C:6

D:7

6.[单选题]以下对一维整型数组a的正确说明是( D )

A:int a(10)

B:int n = 10, a[n]

C:int n

scanf("%d", &n)

int a[n]

D:#define SIZE 10

int a[SIZE]

7.[单选题]若有说明:int a[3][4];则对a数组元素的非法引用是( D )

A:a[0][2*1]

B:a[1][3]

C:a[4-2][0]

D:a[0][4]

8.[单选题]若二维数组a有m列,则计算任一元素a[i][j]在数组中位置的公式为( A )

A:i * m + j

B:j * m + i

C:i * m + j - 1

D:i * m + j + 1

9.[单选题]以下程序的功能是将字符串s中所有的字符c删除,那么空白处缺少的语句为:( A )。

#include

int main(void)

{

char s[80] ;

int i, j ;

gets(s) ;

for ( i = j = 0 ; s [i] != ‘/0' ; i++ )

if ( s [i] != ‘c' )

;

s [ j ] = ‘/0' ;

puts ( s ) ;

return 0 ;

}

A: s [ j++] = s [ i ]

B:s [ ++j ] = s [ i ]

C:s [ j ] = s [ i ]; j++

D:s [ j ] = s [ i ]

10.[单选题]下面程序的功能是将已按升序排好序的两个字符串a和b中的字符,按升序归并到字符串c中,请为程序中的空白处选择适当的语句。 第一空答案( A )

#include

int main(void)

{

char a[ ] = "acegikm";

char b[ ] = "bdfhjlnpq";

char c[80], *p;

int i = 0, j= 0, k = 0;

while( a[i] != '/0' && b[j] != ‘/0' )

{

if ( a[i] < b[j] ) { ( ① ) }

else { ( ② ) }

k++;

}

c[k] = ‘/0';

if ( ③ ) p = b + j;

else p = a + i;

strcat ( c , p );

puts ( c );

}

A:c[k] = a[i]; i++

B:c[k] = b[j]; i++

C:c[k] = a[i]; j++

D:c[k] = a[j]; j++

11.[单选题]下面程序的功能是将已按升序排好序的两个字符串a和b中的字符,按升序归并到字符串c中,请为程序中的空白处选择适当的语句。第二空答案( D )

#include

int main(void)

{

char a[ ] = "acegikm";

char b[ ] = "bdfhjlnpq";

char c[80], *p;

int i = 0, j= 0, k = 0;

while( a[i] != '/0' && b[j] != ‘/0' )

{

if ( a[i] < b[j] ) { ( ① ) }

else { ( ② ) }

k++;

}

c[k] = ‘/0';

if ( ③ ) p = b + j;

else p = a + i;

strcat ( c , p );

puts ( c );

}

A:c[k] = a[i]; i++

B:c[k] = b[j]; i++

C:c[k] = a[i]; j++

D:c[k] = b[j]; j++

12.[单选题]在一个C源程序文件中,若要定义一个只允许本源文件中所有函数使用的全局变量,则该变量需要使用的存储类别是( D )

A:extern

B:register

C:auto

D:static

13.[单选题]以下程序的正确运行结果是( D )。

#include

int f(int a);

int main(void)

{

int a = 2, i;

for( i = 0; i < 3; i++ ) printf("%4d",f(a));

}

int f(int a)

{

int b = 0;

static int c = 3;

b++; c++;

return(a+b+c);

}

A:7 7 7

B:7 10 13

C:7 9 11

D:7 8 9

14.[单选题]以下程序的运行结果为( B )。

void sub(int x, int y, int *z)

{ *z = y - x ; }

int main(void)

{

int a,b,c ;

sub(10, 5, &a) ;

sub(7, a, &b) ;

sub(a, b, &c) ;

printf( "%4d,%4d, %4d/n",a,b,c);

}

A:5, 2, 3

B:-5, -12, -7

C:-5, -12, -17

D:5, -2, -7

15.[单选题]有如下语句int a = 10, b = 20, *p1, *p2; p1 = &a; p2 = &b;变量与指针的关系如图1所示;若要实现图2所示的存储结构,可选用的赋值语句为( 没图 可能是 B或A )

A:*p1 = *p2

B:p1 = p2

C:p1 = *p2

D:*p1 = p2

16.[单选题]若已建立下面的链表结构,指针p、q分别指向图中所示结点,则不能将q所指的结点插入到链表末尾的一组语句是( )

A:q -> next = NULL; p = p -> next; p -> next = q

B:p = p -> next; q -> next = p -> next; p -> next = q

C:p = p -> next; q -> next = p; p -> next = q

D:p = (*p).next; (*q).next = (*p).next; (*p).next = q

17.[单选题]以下程序的功能是:读入一行字符(如:a,b,... y,z),按输入时的逆序建立一个链接式的结点序列,即先输入的位于链表尾(如下图),然后再按输入的相反顺序输出,并释放全部结点。请在空白处为程序选择适当的代码。 第一空答案( B )

#include

#define getnode(type) ① malloc(sizeof(type))

int main(void)

{

struct node{

char info;

struct node *link;

}*top,*p;

char c;

top = NULL;

while( ( c = getchar( ) ② )

{

p = getnode ( struct node );

p -> info = c;

p -> link = top;

top = p;

}

while ( top )

{

③ ;

top = top -> link;

putchar ( p -> info );

free ( p );

}

}

A:(type)

B:(type *)

C:type

D:type *

18.[单选题]以下程序的功能是:读入一行字符(如:a,b,... y,z),按输入时的逆序建立一个链接式的结点序列,即先输入的位于链表尾(如下图),然后再按输入的相反顺序输出,并释放全部结点。请在空白处为程序选择适当的代码。第二空答案(D )

#include

#define getnode(type) ① malloc(sizeof(type))

int main(void)

{

struct node{

char info;

struct node *link;

}*top,*p;

char c;

top = NULL;

while( ( c = getchar( ) ② )

{

p = getnode ( struct node );

p -> info = c;

p -> link = top;

top = p;

}

while ( top )

{

③ ;

top = top -> link;

putchar ( p -> info );

free ( p );

}

}

A:=='/0'

B:!='/0'

C:=='/n'

D:!='/n'

19.[单选题]以下程序的功能是:读入一行字符(如:a,b,... y,z),按输入时的逆序建立一个链接式的结点序列,即先输入的位于链表尾(如下图),然后再按输入的相反顺序输出,并释放全部结点。请在空白处为程序选择适当的代码。第三空答案( B)

#include

#define getnode(type) ① malloc(sizeof(type))

int main(void)

{

struct node{

char info;

struct node *link;

}*top,*p;

char c;

top = NULL;

while( ( c = getchar( ) ② )

{

p = getnode ( struct node );

p -> info = c;

p -> link = top;

top = p;

}

while ( top )

{

③ ;

top = top -> link;

putchar ( p -> info );

free ( p );

}

}

A:top = p

B:p = top

C:p == top

D:top == p

20.[单选题]以下程序的输出结果是( C )

#include

#define M 5

#define N M+M

main()

{

int k;

k=N*N*5; printf("%d/n",k);

}

A:500

B:125

C:55

D:100

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值