c语言百道试题

版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_38341596/article/details/78622175

1.C语言程序的基本单位是()。
A:程序行
B:语句
C:函数
D:字符
正确答案:C

2.C语言程序的基本单位是()。
A:程序行
B:语句
C:函数
D:字符
正确答案:C

3.下列说法中正确的是()。
A:C语言程序总是从第一个定义的函数开始执行
B:在C语言程序中要调用的函数必须在main()函数中定义
C:C语言程序总是从main()函数开始执行
D:C语言程序中的main()函数必须在程序的开始部分
正确答案:C

4.设有语句int a=3,则执行语句a+=a-=a*a以后变量a的值是()。
A:3
B:0
C:9
D:-12
正确答案:D

5.在C语言中,要求运算数必须是整数的运算符是()。
A:<
B:%
C:/
D:>
正确答案:B

6.C语言中最简单的数据类型包括()。
A:整型、实型、逻辑型
B:整型、实型、字符型
C:整型、字符型、逻辑型
D:整型、实型、逻辑型、字符型
正确答案:B

7.在一个C语言程序中()。
A:main函数必须出现在所有函数之前
B:main函数可以在任何地方出现
C:main函数必须出现在所有函数之后
D:main函数必须出现在固定位置
正确答案:B

8.设正x、y均为整型变量,且x=10 y=3,则以下语句的
输出结果是()。pprintf(“%d,%d
“,x–,–y);
A:10,3
B:9,3
C:9,2
D:10,2
正确答案:D

9.假定x和y为double型,则表达式x=2,y=x+3/2的值是()。
A:3.5
B:3
C:2
D:3.0
正确答案:D

10.下列程序的输出结果是()。
main()
{ double d=3.2; int x,y;
x=1.2; y=(x+3.8)/5.0;
printf(“%d
“, d*y);
}
A:3
B:3.2
C:0
D:3.07
正确答案:C

11.执行以下语句:x+=y;y=x-y;x-=y;的功能是()。
A:把x和y按从大到小排列
B:把x和y按从小到大排列
C:无确定结果
D:交换x和y中的值
正确答案:D

12.若有如下定义变量:
int k=7,x=12; 则能使值为3的表达式是
()。
A:x%=(k%=5)
B:x%=(k-k%5)
C:x%=k-k%5
D:(x%=k)-(k%=5)
正确答案:D

13.设X,Y,Z和K是int型变量,则执行表达式:X=(Y=4,Z=16,K=32)
后,X的值为()。
A:4
B:16
C:32
D:52
正确答案:C

14.表达式“0?(0?3:2):(10?1:0)”的值为()。
A:3
B:2
C:1
D:0
正确答案:C

15.以下程序的输出结果是()。
main()
{ int a=4,b=5,c=0,d;
d=!a&&!b||!c;
printf(“%d
“,d);}
A:1
B:0
C:非0数
D:-1
正确答案:A

16.设实型变量为f1、f2、f3、f4的值分别为4,3,2,1整型变量m1、m2
的值为1。表达式“(m1=f1>f2)&&(m2=f3

define MA(x) x*(x-1)

main()
{ int a=1,b=2; printf(“%d
“,MA(1+a+b));}
A:6
B:8
C:10
D:12
正确答案:B

45.在宏定义#define PI 3.14159中,用宏名代替一个()。
A:常量
B:单精度数
C:双精度数
D:字符串
正确答案:D

46.在“文件包含”预处理语句的使用形式中,当#include后面的文件用了“”(双引号)
时,寻找被包含文件的方式是()。
A:直接按系统设定的标准方式搜索目录
B:先在源程序所在目录搜索,再按系统设定的标准方式搜索
C:仅仅搜索源程序所在目录
D:仅仅搜索当前目录
正确答案:B

47.对下面程序段:

define A 3

define B(a) ((A+1)*a)


x=3*(A+B(7));正确的判断是()。
A:程序错误,不许嵌套宏定义
B:程序错误,宏定义不许有参数
C:x=93
D:x=21
正确答案:C

48.设有以下宏定义:

define N 3

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

则执行语句:z=2 * (N+Y(5+1));后,z的值为()。
A:出错
B:42
C:48
D:54
正确答案:C

49.8、 有以下程序
struct STU{
char name[10];
int num;
};
void f1(struct STU c)
{ struct STU b={“LiSiGuo”,2042};
c=b;}
void f2(struct STU *c)
{ struct STU b={“SunDan”,2044};
*c=b;
}
main( )
{ struct STU a={“YangSan”,2041},b={“WangYin”,2043};
f1(a);f2(&b);
printf(“%d %d
“,a.num,b.num);}
执行后的输出结果是 ()。
A:2041 2044
B:2041 2043
C:2042 2044
D: 2042 2043
正确答案:A

50.以下程序的输出结果是()。

define M(x,y,z) x*y+z

main()
{ int a=1,b=2, c=3;
printf(“%d
“, M(a+b,b+c, c+a));
}
A:19
B:17
C:15
D:12
正确答案:D

51.有以下程序
  struct stu
  { int num;
  char name[10];
  int age;
  };
  void fun(struct stu *p)
  { printf(“%s
“,(*p).name); }
  main()
  {
  struct stu students[3]={{9801,”Zhang”,20},
  {9802,”Wang”,19},
  {9803,”Zhao”,18} };
  fun(students+2);
  }
  输出结果是()。
A:Zhang
B:Zhao
C:Wang
D:18
正确答案:B

52.若x为int型变量,则以下函数fun的类型为( )。 fun(x) { printf(“%d
”,x);}
A:返回值为void类型
B:无法确定返回值
C:返回值为int类型
D:无返回值
正确答案:C

53.以下叙述正确的是()。
A:C程序中各函数之间既允许直接递归调用,也允许间接递归调用
B:C程序中各函数之间不允许直接递归调用,也不允许间接递归调用
C:C程序中各函数允许直接递归调用,不允许间接递归调用
D:C程序中各函数之间不允许直接递归调用,允许间接递归调用
正确答案:A

54.以下叙述中不正确的是()。
A:一个变量的作用域完全取决于变量定义语句的位置
B:全局变量可以在函数以外的任何部位进行定义
C:局部变量的“生存期”只限于本次函数调用,因此不可能将局部变量的运算结果保存至下一次调用
D:一个变量说明为static存储类别是为于限制其它编译单位的引用
正确答案:C

55.表示关系x<=y<=z的c语言表达式为()。
A:(X<=Y)&&(Y<=Z)
B:(X<=Y)AND(Y<=Z)
C:(X<=Y<=Z)
D:(X<=Y)&(Y<=Z)
正确答案:A

56.假定int类型变量占用两个字节,其有定义:int x[10]={0,2,4};,则数组x在内存中所占字节数是()。
A:3
B:6
C:10
D:20
正确答案:D

57.请读程序片段(字符串内没有空格):
printf(“%d
“,strlen(“ATS
0121\”));的输出结果是()。
A:11
B:10
C:9
D:8
正确答案:C

58.若int类型占两个字节,则以下语句输出为()。
int k=-1;
printf(“%d,%u
“,k,k);
A:-1,-1
B:-1,65536
C:-1,32768
D:-1,65535
正确答案:D

59.程序片段:在TC20中, int i=65536; printf(“%d
“,i);的输出结果是()。
A:65536
B:0
C:有语法错误,无输出结果
D:-1
正确答案:B

60.C语言中文件的存取方式是()。
A:顺序存取
B:随机存取
C:顺序存取,随机存取均可
D:顺序存取,随机存取均不可
正确答案:C

61.C语言中数组下标的下限是()。
A:1
B:0
C:视具体情况而定
D:无固定下限
正确答案:B

62.表达式:10!=9的值是()。
A:ture
B:非零值
C:1
D:0
正确答案:C

63.以下不合法的用户标识符是()。
A:j2_KEY
B:Double
C:4d
D:8
正确答案:C

64.以下不合法的数值常量是()。
A:011
B:1e1
C:8.0E0.5
D:0xabcd
正确答案:C

65.以下能正确定义字符串的语句是()。
A:char str[]={“\064”};
B:char str=”kx43”;
C:char str=”“;
D:char str[]=”\0”
正确答案:D

66.以下叙述不正确的是()。
A:一个C源程序可由一个或多个函数组成
B:一个C源程序必须包含一个main函数
C:C程序的基本组成单位是函数
D:在C程序中,注释说明只能位于一条语句的后面
正确答案:D

67.在C语言中,int,char和short三种类型数据在内存中所占用的字节数 ()。
A:由用户自己定义
B:均为2个字节
C:是任意的
D:由所用机器的机器字长决定
正确答案:D

68.以下叙述正确的是 ()。
A:在C程序中,每行中只能写一条语句
B:若a是实型变量,C程序中允许赋值a=10,因此实型变量中允许存放整型数
C:C程序中,无论是整数还是实数,都能被准确无误地表示
D:在C程序中,%是只能用于整数运算的运算符
正确答案:D

69.C语言中的标识符只能由字母,数字和下划线三种字符组成,且第一个字符()。
A:必须为字母
B:必须为下划线
C:必须为字母或下划线
D:可以是字母,数字和下划线中任一字符
正确答案:C

70.x,y,z被定义为int型变量,若从键盘给x,y,z输入数据,正确的输入语句是 ()。
A:INPUT x,y,z;
B:scanf(”%d%d%d”,&x,&y,&z);
C:scanf(”%d%d%d”,x,y,z);
D:read(”%d%d%d”,&x,&y,&z);
正确答案:B

71.执行下列程序时输入123<空格>456<空格>789<回车> 输出结果是 ()。
main()
{ char s[100]; int c, i;
scanf(”%c”,&c); scanf(”%d”,&i); scanf(”%s”,s);
printf(”%c,%d,%s\n”,c,i,s);
}
A:123456789
B:1456789
C:1,23,456,789
D:1,23,456
正确答案:D

72.下面有关for循环的正确描述是 ()。
A:for循环只能用于循环次数已经确定的情况
B:for循环是先执行循环体语句,后判断表达式
C:在for循环中,不能用break语句跳出循环体
D:for循环的循环体语句中,可以包含多条语句,但必须用花括号括起来
正确答案:D

73.以下程序的输出结果是()。
main()
{ int i,j,x=0;
for(i=0;i<2;i++)
{ x++;
for(j=0;j<3;j++)
{ if(j%2)continue;
x++;
}
x++;
}
printf(”x=%d\n”,x);
}
A:x=4
B:x=8
C:x=6
D:x=12
正确答案:B

74.22.设有以下程序段
int x=0,s=0;
while(!x!=0)s+=++x;
printf(”%d”,s);
则()。
A:运行程序段后输出0
B:运行程序段后输出1
C:程序段中的控制表达式是非法的
D:程序段执行无限次
正确答案:B

75.下面程序的输出结果为()。
main()
{ int a,b;b=(a=3*5,a*4,a*5);
printf(”%d”,b);
}
A:60
B:75
C:65
D:无确定值
正确答案:B

76.下面程序的输出结果是()。

include

include

main()
{ char *p1=”abc”,*p2=”ABC”,str[50]= “xyz”;
strcpy(str+2,strcat(p1,p2));
printf(”%s\n”,str);}
A:xyzabcABC
B:zabcABC
C:xyabcABC
D:yzabcABC
正确答案:C

77.以下程序的输出结果是()。
long fun( int n)
{ long s;
if(n==1||n==2)s=2;
else s=n-fun(n-1);
return s;}
main()
{ printf(”%ld\n”, fun(3)); }
A:1
B:2
C:3
D:4
正确答案:A

78.有如下程序
main()
{ char ch[2][5]={“6937”,”8254”},*p[2];
int i,j,s=0;
for(i=0;i<2;i++)p[i]=ch[i];
for(i=0;i<2;i++)
for(j=0;p[i][j]>’ ‘;j+=2)
s=10*s+p[i][j]-‘0’;
printf(”%d\n”,s);}
该程序的输出结果是()。
A:69825
B:63825
C:6385
D:693825
正确答案:C

79.以下程序的输出结果是()。
union myun
{ struct
{ int x, y, z; } u;
int k;
} a;
main()
{ a.u.x=4; a.u.y=5; a.u.z=6;
a.k=0;
printf(”%d\n”,a.u.x);}
A:4
B:5
C:6
D:0
正确答案:D

80.下面的程序执行后,文件test中的内容是 ()。
void fun(char *fname,char *st)
{ FILE *myf; int i;
myf=fopen(fname,”w” );
for(i=0;st[i];i++)
fputc(st[i],myf);
fputc(’ ‘,myf);
fclose(myf);
}
main()
{ fun(”test”,”new world”); fun(”test”,”hello,”);}
A:hello,
B:new worldhello,
C:new world
D:hello, rld
正确答案:A

81.若要求从键盘读入含有空格字符的字符串,应使用函数()。
A:getc()
B:gets()
C:getchar()
D:scanf()
正确答案:B

82.在以下给出的表达式中,与while(E)中的(E)不等价的表达式是()。
A:(!E==0)
B:(E>0‖E<0)
C:(E==0)
D:(E!=0)
正确答案:C

83.要求通过while循环不断读入字符,当读入字母N时结束循环。若变量已正确定义,以下正确的程序段是()。
A:while((ch=getchar())!=”N”)printf(“%c”,ch);
B:while(ch=getchar()!=”N”)printf(“%c”,ch);
C:while(ch=getchar()==”N”)printf(“%c”,ch);
D:while((ch=getchar())==”N”)printf(“%c”,ch);
正确答案:A

84.已定义以下函数
int fun(int *p)
{return *p;)
fun函数返回值是()。
A:不确定的值
B:一个整数
C:形参P中存放的值
D:形参P的地址值
正确答案:B

85.若有说明语句:double *p,a;则能通过scanf语句正确给输入项读入数据的程序段是()。
A:*p=a;
scanf(“%1f”,p);
B:*p=a;
scanf(“%f”,p);
C:p=a;
scanf(“%1f”,*p);
D:p=&a;
scanf(“%1f”,p);
正确答案:D

86.有以下程序段
struct st
{int x;int *y;}*pt;
int a[]={1,2},b[]={3,4};
struct st c[2]={10,a,20,b};
pt=c;
以下选项中表达式的值为11的是()。
A:*pt->y
B:pt->x
C:++pt->x
D:(pt++)->x
正确答案:C

87.设fp为指向某二进制文件的指针,且已读到此文件末尾,则函数feof(fp)的返回值为()。
A:EOF
B:非0值
C:0
D:NULL
正确答案:B

88.设有以下语句
int a=1,b=2,c;
c=a^(b<<2);
执行后,C的值为()。
A:6
B:7
C:8
D:9
正确答案:D

89.有以下程序
main()
{char c1,c2,c3,c4,c5,c6;
scanf(“%c%c%c%c”,&c1,&c2,&c3,&c4);
c5=getchar(); c6=getchar();
putchar(c1);putchar(c2);
printf(“%c%c\n”,c5,c6);
}
程序运行后,若从键盘输入(从第1列开始)
123<回车>
45678<回车>
则输出结果是()。
A:1267
B:1256
C:1278
D:1245
正确答案:D

90.有以下程序
main()
{int y=10;
while(y–);printf(“y=%d
“,y);
}
程序执行后的输出结果是()。
A:y=0
B:y=-1
C:y=1
D:while构成无限循环
正确答案:B

91.有以下程序
main()
{int a=0,b=0,c=0,d=0;
if(a=1) b=1;c=2;
else d=3;
printf(“%d,%d,%d,%d\n”,a,b,c,d);
}
程序输出()。
A:0,1,2,0
B:0,0,0,3
C:1,1,2,0
D:编译有错
正确答案:D

92.有以下程序
main()
{int i,t[][3]={9,8,7,6,5,4,3,2,1};
for(i=0;i<3;i++) printf(“%d”,t[2-i][i]);
}
程序执行后的输出结果是()。
A:7 5 3
B:3 5 7
C:3 6 9
D:7 5 1
正确答案:B

93.有以下程序
fun(char p[][10])
{int n=0,i;
for(i=0;i<7;i++)
if(p[i][0]==’T’)n++;
return n;
}
main()
{char str[][10]={“Mon”,”Tue”,”Wed”,”Thu”,”Fri”,”Sat”,”Sun”};
printf(“%d\n”,fun(str));
}
程序执行后的输出结果是()。
A:1
B:2
C:3
D:0
正确答案:B

94.有以下程序
main()
{int i,s=0,t[]={l,2,3,4,5,6,7,8,9};
for(i=0;i<9;i+=2)s+=*(t+i);
printf(“%d\n”,s);
}
程序执行后的输出结果是()。
A:45
B:20
C:25
D:36
正确答案:C

95.有以下程序
void fun1(char *p)
{char *q;
q=p;
while(*q!=’ ‘)
{ (*q)++; q++;
}
main()
{char a[]={“Program”}, *p;
p=&a[3];fun1(p);printf(“%s\n”,a);
}
程序执行后的输出
A:Prohsbn
B:Prphsbn
C:Progsbn
D:Program
正确答案:A

96.有以下程序
void swap(char *x,char *y)
{char t;
t=*x; *x=*y; *y=t;
}
main()
{char *s1=”abc”,*s2=”123”;
swap(s1,s2);printf(“%s,%s\n”,s1,s2);
}
程序执行后的输出结果是()。
A:123,abc
B:abc,123
C:1bc,a23
D:321,cba
正确答案:C

97.有以下程序
int fun(int n)
{if(n==1)return 1;
else
return(n+fun(n-1));
}
main()
{int x;
scanf(“%d”,&x); x=fun(x);printf(“%d\n”,x);
}
执行程序时,给变量X输入10,程序的输出结果是()。
A:55
B:54
C:65
D:45
正确答案:A

98.有以下程序
int fun(int x[],int n)
{static int sum=0,i;
for(i=0;i

define N 5

define M N+1

define f(x) (x*M)

main()
{int i1,i2;
i1=f(2);
i2=f(1+1);
printf(“%d %d
”,i1,i2); }
程序的运行结果是()。
A:12 12
B:11 7
C:11 11
D:12 7
正确答案:B

121.有以下程序
main()
{int k=5,n=0;
do
{switch(k)
{case 1: case 3:n+=1; break;
default:n=0;k–;
case 2: case4:n+=2;k–;break;}
printf(“%d”,n);
}while(k>0&&n<5);}
程序运行后的输出结果是()
A:2345
B:235
C:23456
D:2356
正确答案:A

122.以下程序中函数f的功能是:当flag为4时,进行有小到大排序;当flag为0时,进行由大到小排序。
void f(int b[],int n,int flag)
{int i,j,t;
for(i=0;i

define SIZE 5

void func(int data[SIZE]);
main()
{
int i,buf[SIZE];
printf(“Please input %d numbers:”,SIZE);
for(i=0;i

include “stdio.h”

main()
{ int a,b,c=246;
a=c/100%9;
b=(-1)&&(-1);
printf(“%d,%d
“,a,b);
}
输出结果是()。
A:2,1
B:3,2
C:4,3
D:2,-1
正确答案:A

137.有以下程序
#include “stdio.h”
int abc(int u,intv);
main ()
{ int a=24,b=16,c;
c=abc(a,b);
printf(‘%d
“,c);
}
int abc(int u,int v)
{ int w;
while(v)
{ w=u%v; u=v; v=w }
return u;
}
输出结果是()。
A:6
B:7
C:8
D:9
正确答案:C

138.阅读下面的程序,运行结果是()。
main()
{
char *str=”ABCabcd”;
bubble(str,5);
printf(”
%s”,str);
}

bubble(str,count)
char *str;
int count;
{
int i,j=count;
char tmp;
while(j–>1)
for(i=0;i

include

5

B:**3

4

**5
C:**3

4**5

D:##3**4

5

正确答案:D

182.下列语句中,不正确的是( )。
A:static char a[2]={1,2};
B:static char a[2]={ ‘1’, ‘2’};
C:static char a[2]={ ‘1’, ‘2’, ‘3’};
D:static char a[2]={ ‘1’};
正确答案:C

183.下述对C语言字符数组的描述中错误的是( )。
A:字符数组可以存放字符串
B:字符数组中的字符串可以整体输入、输出
C:可以在赋值语句中通过赋值运算符”=”对字符数组整体赋值
D:不可以用关系运算符对字符数组中的字符串进行比较
正确答案:C

184.若二维数组a有m行n列,则下面能够正确引用元素a[i][j]的为() 。
A:*(a+j*n+i)
B:*(a+i*n+j)
C:((a+i)+j)
D:*(*a+i)+j
正确答案:C

185.下列数据中,为字符的是()。
A:’AB’
B:”A”
C:How
D:’A’
正确答案:D

186.若有定义:int b[5];则以下对b 数组元素的正确引用是()。
A:*b[5]
B:b+2
C:(b+2))
D:*(b+2)
正确答案:D

187.设有int x,y; 以下语句判断x和y是否相等,正确的说法是该语句()。
if (x=y) printf(” x is equal to y.”);
A:语法错
B:不能判断x和y是否相等
C:编译出错
D:能判断x和y是否相等
正确答案:B

188.以下有关switch语句的正确说法是()。
A:break语句是语句中必须的一部分
B:在switch 语句中可以根据需要使用或不使用break语句
C:break语句在switch 语句中不可以使用
D:在switch 语句中的每一个case都要用break语句
正确答案:B

189.若给出以下定义:
char x[ ]=”abcdefg”;
char y[ ]={‘a’,’b’,’c’,’d’,’e’,’f’,’g’};
则正确的叙述为( )。
A:数组x和数组y等价
B:数组x和数组y的长度相同
C:数组x的长度大于数组y的长度
D:数组x的长度小于数组y的长度
正确答案:C

190.若有数组定义: char array [ ]=”China”; 则数组 array所占的空间为( )。
A:4个字节
B:5个字节
C:6个字节
D:7个字节
正确答案:C

191.判断两个字符串是否相等,正确的表达方式是( )。
A:while(s1==s2)
B:while(s1=s2)
C:while(strcmp(s1,s2)==0)
D:while(strcmp(s1,s2)=0)
正确答案:C

192.若有以下程序片段:
char str[ ]=”ab
12\”“;
printf(“%d”,strlen(str));
上面程序片段的输出结果是 ( )。
A:3
B:4
C:6
D:12
正确答案:C

193.若有以下程序段,输出结果是( )。
char s[ ]=”\141141abc “;
printf (“%d
“,strlen(s));
A:9
B:12
C:13
D:14
正确答案:A

194.以下所列的各函数首部中,正确的是()。
A:void play(var a:integer,var b:integer)
B:void play(int a,b)
C:void play(int a,int b)
D:sub play(a as integer,b as integer)
正确答案:C

195.以下叙述正确的是()。
A:输入项可以是一个实型常量,如: scanf(“%f”.3.5);
B:只有格式控制,没有输入项,也能正确输入数据到内存,例如: scanf(“a=%d,b=%d);
C:当输入一个实型数据时,格式控制部分可以规定小数点后的位数,例如: scanf(“%4.2f”,&f);
D:当输入数据时,必须指明变量地址,例如: scanf(“%f”,&f);
正确答案:D

展开阅读全文

没有更多推荐了,返回首页