【c语言基础题】— —第六版,可当作日常练习和期末复习,有奇效哟!

简介: 【c语言基础题】— —第六版,可当作日常练习和期末复习,有奇效哟!

🎯问题:

一. 单选题(共30题,100分)

1. (单选题)【选择题】以下能正确定义字符串的语句是( )


A. char str[]="\0";


B. char str="kx43";


C. char str=";


D. char str[]={'\064'};


2. (单选题)【选择题】设有n个数按从大到小的顺序存放在数组x中, 以下能使这n个数在x数组中的顺序变为从小到大的是(     )    


A. for(i=0;i<n/2;i++)


{


   t=x[i];


   x[i]=x[n-i-1];


   x[n-i-1]=t;


}


B.


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


{


   t=x[i];


   x[i]=x[n-i-1];


   x[n-i-1]=t;


}


C.


for(i=0;i<n/2;i++)


{


   t=x[i];


   x[i]=x[n-i+1];


   x[n-i+1]=t;


}


D.


for(i=0;i<n/2;i+=2)


{


   t=x[i];


   x[i]=x[n-i-1];


   x[n-i-1]=t;


}


3. (单选题)【选择题】以下叙述中正确的是( )


A. 语句“char str[10]="string!";”和“char str[10]={"string!"};”并不等价


B. 对于字符串常量“string!”, 系统已自动在最后加入了'\0'字符, 表示串结尾


C. 对于一维字符数组, 不能使用字符串常量来赋初值


D. 在语句“char str[]="string!";”中, 数组str的大小等于字符串的长度


4. (单选题)【选择题】以下语句的输出结果是( ) 。


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


A. 5


B. 8


C. 14


D. 输出项不合法, 无正常输出


5. (单选题)【选择题】设有一个M*N的矩阵已经存放在一个M行N列的数组x中, 且有以下程序段:

sum=0;

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


   sum+=x[i][0]+x[i][N-1];

for(j=1;j<N-1;j++)


   sum+=x[0][j]+x[M-1][j];

以上程序段计算的是( )


A. 矩阵两条对角线元素之和


B. 矩阵所有不靠边元素之和


C. 矩阵所有元素之和


D. 矩阵所有靠边元素之和


6. (单选题)【选择题】有以下程序:


#include<stdio.h>


main()


{


   int i,k;


   int array[4][2]={{1,0},{0},{2,9},{3}};


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


       for(k=0;k<3;k++)


       {


           printf("%d,",array[k][i]);


       }


   printf("\n");


}


程序运行后的输出结果是( )


A. 1,0,2,0,0,9,


B. 1,2,4,9,6,0,


C. 2,9,0,0,1,4,


D. 1,2,0,1,4,1,


7. (单选题)【选择题】有如下程序:


#include <stdio.h>


main()


{


   int i,k;


   int array[4][2]={{1,2},{4,9},{6}};


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


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


       {


           printf("%d,",array[k][i]);


       }


   printf("\n");


}


程序运行后的输出结果是( )


A. 1,2,4,9,6,


B. 1,4,6,0,2,9,0,0,


C. 2,9,0,0,1,4,6,0,


D. 2,9,6,1,4,


8. (单选题)【选择题】有以下程序:


#include <stdio.h>


main()


{


   char a[30],b[30];


   scanf("%s",a);


   gets(b);


   printf("%s\n%s\n",a,b);


}


程序运行时若输入:


how are you? I am fine<回车>


则输出结果是( )


A. how are you?<换行> I am fine


B. how<换行> are you? I am fine


C. how are you? I am fine


D. how are you?


9. (单选题)【选择题】设有以下定义:

char s1[]="0123";

char s2[]={'0','1','2','3'};

则以下叙述正确的是( )


A. 数组s1的长度小于s2的长度


B. 数组s1和s2的长度相同


C. 数组s1的长度大于s2的长度


D. 数组s1和s2完全等价


10. (单选题)【选择题】有以下程序


#include<stdio.h>


main()


{


   int a[5] = {1,2,3,4,5}, b[5] ={0,2,1,3,0}, i, s=0;


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


       s=s+a[b[i]];


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


}


程序运行后的输出结果是( )


A. 6


B. 10


C. 11


D. 15


11. (单选题)【选择题】以下叙述中正确的是( )


A. 语句“int a[8]={0};”是合法的


B. 语句“int a[]={0};”是不合法的, 遗漏了数组的大小


C. 语句“char a[2]={"A","B"};”是合法的, 定义了一个包含两个字符的数组


D. 语句“char a[3];a="AB";”是合法的, 因为数组有三个字符空间的容量, 可以保存两个字符


12. (单选题)【选择题】有以下程序

#include <stdio.h>


main()


{


   char a[20],b[20],c[20];


   scanf("%s%s",a,b);


   gets(c);


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


}

程序运行时从第一列开始输入:

This is a cat!<回车>

则输出结果是( )


A. Thisisacat!


B. Thisis a


C. Thisis a cat!


D. Thisisa cat!


13. (单选题)【选择题】有以下程序( 注: 字符a的ASCII码值为97) :


#include <stdio.h>


main()


{


   char *s={"abc"};


   do {


           printf("%d",*s%10);


           ++s;


         }while(*s);


}


程序运行后的输出结果是( )


A. abc


B. 789


C. 7890


D. 979800


14. (单选题)【选择题】有以下程序:

#include<stdio.h>


#include<string.h>


main()


{


   char w[20], a[5][10] ={"abcdef", "ghijkl", "mnopq", "rstuv", "wxyz"};


   int i,j;


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


   {


        j=0;


       while(a[i][j]!='\0')


           j++;


       w[i]=a[i][j-2];


   }


   w[5]='\0';


    puts(w);


}

程序运行后的输出结果是( )


A. agmrw


B. ekpuy


C. djotx


D. flqvz


15. (单选题)【选择题】以下函数的功能是: 通过键盘输入数据, 为数组中的所有元素赋值。

#include <stdio.h>


#define N 10


void fun(int x[N])


{


   int i=0;


   while(i<N)


       scanf("%d",______);


}

在程序中下画线处应填入的是( )


A. x+i


B. &x[i+1]


C. x+(i++)


D. &x[++i]


16. (单选题)【选择题】有以下程序:

#include <stdio.h>


main()


{


   char name[10] ={'S','T','R'};


   name[2]='#';


   name[6]=0;


   printf("%s\n",name);


}

程序运行后的输出结果是( )


A. ST#


B. STR#


C. STR#0


D. STR0


17. (单选题)【选择题】有以下程序:


#include<stdio.h>


main()


{


   char *s="12134";


   int k=0,a=0;


   while(s[k+1]!='\0')


   {


       k++;


       if(k%2==0)


       {


           a=a+s[k]-'0'+1;


           continue;


       }


       a=a+(s[k]-'0');


   }


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


}


程序运行后的输出结果是( )


A. k=6 a=11


B. k=3 a=14


C. k=4 a=12


D. k=5 a=15


18. (单选题)【选择题】有以下程序


#include<stdio.h>


main()


{


   int x[3][2]={0},i;


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


       scanf("%d",x[i]);


   printf("%3d%3d%3d\n", x[0][0], x[0][1], x[1][0]);


}


若运行时输入: 2 4 6<回车>, 则输出结果为( )


A. 2 0 4


B. 2 0 0


C. 2 4 0


D. 2 4 6


19. (单选题)【选择题】有以下程序


#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 <= i;j++)


           t+=b[i][b[j][i]];


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


}


程序运行后的输出结果是( )


A. 4


B. 3


C. 1


D. 9


20. (单选题)【选择题】有以下程序:

#include <stdio.h>


void fun(int *p)


{


   printf("%d\n",p[5]);


}


main()

{


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


   fun(&a[3]);


}

程序运行后的输出结果是( )


A. 5


B. 6


C. 8


D. 9


21. (单选题)【选择题】若有定义语句:

int m[ ][3]={1,2,3,4,5,6,7};

则与该语句等价的是( )


A. int m[ ][3]={{1,2,3},{4,5,6},{7}};


B. int m[ ][3]={{1,2},{3,4},{5,6,7}};


C. int m[ ][3]={{1,2,3},{4,5},{6,7}};


D. int m[ ][3]={{1},{2,3,4},{5,6,7}};


22. (单选题)【选择题】有以下程序:

#include <stdio.h>


main()


{


   char ch[3][5] ={"AAAA","BBBB","CC"};


   printf("%s\n",ch[1]);


}

程序运行后的输出结果是( )


A. AAAA


B. CC


C. BBBCC


D. BBBB


23. (单选题)【选择题】以下能正确进行字符串赋值的语句组是 (   )


A. char*ch; ch="abc";


B. char ch[]={'a', 'b', 'c'};


C. char ch[3]= "abc";


D. char ch[4]; ch="abc";


24. (单选题)【选择题】有以下程序:


#include<stdio.h>


main()


{


   int x[3][3] = {{2},{4},{6}}, i, *q =&x[0][0];


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


   {


       if(i==0)


           x[i][i+1]=*q+1;


       else


           ++q;


       printf("%d",*q);


   }


   printf("\n");


}


程序的运行结果是( )


A. 23


B. 26


C. 33


D. 36


25. (单选题)【选择题】若有定义:

int a[2][3];

以下选项中对a数组元素正确引用的是( )


A. a[2][!1]


B. a[2][3]


C. a[0][3]


D. a[1>2][!1]


26. (单选题)【选择题】fun函数的功能是: 通过键盘输入给x所指的整型数组所有元素赋值。 在下划线处应填写的是( ) 。


#include <stdio.h>


#define N 5


void fun(int x[N])


{


   int m;


   for(m=N-1;m>=0;m--)


       scanf("%d",_____);


}


A. &x[++m]


B. &x[m+1]


C. x+(m++)


D. x+m


27. (单选题)【选择题】以下关于字符串的叙述中正确的是( )


A. C语言中有字符串类型的常量和变量


B. 两个字符串中的字符个数相同时才能进行字符串大小的比较


C. 可以用关系运算符对字符串的大小进行比较


D. 空串比空格打头的字符串小


28. (单选题)【选择题】下面是有关C语言字符数组的描述, 其中错误的是 (   )


A. 不可以用赋值语句给字符数组名赋字符串


B. 可以用输入语句把字符串整体输入给字符数组


C. 字符数组中的内容不一定是字符串


D. 字符数组只能存放字符串


29. (单选题)【选择题】以下错误的定义语句是(     )    


A. int x[][3]={{0},{1},{1,2,3}};

B. int x[4][3]={{1,2,3},{1,2,3},{1,2,3},{1,2,3}};

C. int x[4][]={{1,2,3},{1,2,3},{1,2,3},{1,2,3}};

D. int x[][3]={1,2,3,4};

30. (单选题)【选择题】以下正确的字符串常量是( )


A. ""

B. 'abc'

C. Olympic Games

D. "\\\"


🎯 答案:

1-5:AABAD

6-10:ABBCC

11-15:ACBBC

16-20:ACAAD

21-25:ADAAD

26-30:DDDCA

相关文章
|
5月前
|
C语言
大学生期末C语言实验(学生成绩和鞍点)
大学生期末C语言实验(学生成绩和鞍点)
347 0
大学生期末C语言实验(学生成绩和鞍点)
|
8月前
|
C语言
PTA—C语言期末复习(判断题)
PTA—C语言期末复习(判断题)
195 0
|
8月前
|
存储 C语言 C++
PTA—C语言期末复习(选择题)
PTA—C语言期末复习(选择题)
149 1
|
9月前
|
C语言
|
9月前
|
C语言
C语言练习代码第一篇
C语言练习代码第一篇
|
9月前
|
编译器 C语言
|
9月前
|
C语言
|
10月前
|
存储 前端开发 算法
从C语言到C++_18(stack和queue的常用函数+相关练习)力扣(下)
从C语言到C++_18(stack和queue的常用函数+相关练习)力扣
41 0
|
10月前
|
存储 C语言
从C语言到C++_18(stack和queue的常用函数+相关练习)力扣(中)
从C语言到C++_18(stack和queue的常用函数+相关练习)力扣
52 0
|
10月前
|
算法 C语言 容器
从C语言到C++_18(stack和queue的常用函数+相关练习)力扣(上)
从C语言到C++_18(stack和queue的常用函数+相关练习)力扣
62 0