admin 管理员组文章数量: 887032
2023年12月16日发(作者:screen相关短语)
c语言试题库1
一、填空
1.C语言程序的三种基本结构是顺序结构、选择结构、循环结构。
2.一个C程序有且仅有一个main( ) 函数。
3.C语言描述“x和y都大于或等于z”的表达式是x>=z &&
y>=z。
4.C语言可以用来实现循环的结构化语句是while、do while、for。
5.数组名表示数组在内存的首地址。
a=3,*p=&a*p+2的值是5。
7.在C语言中,变量的存储类别有四种,它们是自动的,静态的,
动态的和寄存器的。
8.对_extern_和_static__型数组不赋初值,系统会对所有元素自动赋以0
值。
9.C语言中“文件包含”是通过___#include___命令完成的,而符号常
量是通过___#define_________命令定义的。
10.对于数组x[5][5],*(x+2)+3表示__&x[2][3]_ ___,
*(x[3]+2)表示___ x[3][2]_______。
11.若定义:struct {int y, m, d;} today, *pdata; 则为today分配内存
_6___ 字节,为pdata分配内存_2___字节。
12.C语言文件按数据的存放形式可分为__文本_文件和__二进制文件。
13.C语言文件是一个__字符____序列,这类文件称为___流____文件。
二、单项选择
1.关于字符常量和字符串常量的描述,错误的是( B )。
A 字符常量是用一对单引号括起来的单个字符。
B 字符常量可以是单引号。
C 字符串常量(简称字符串)是用一对双引号括起来的字符序列。
D 字符串常量可以包含转义字符。
2.设x=2.7,a=8,y=4.9,算术表达式x+a%3*(int)(x+y)%5/3的值为 B 。
(A)2.7 (B)3.7(C)4.7 (D)4.03 3.执行下面两个语句后,输出的结果为___D__。
char c1=98;
printf(“%d %c”,c1,c1-32);
(A)97 66 (B)98 b (C)b 66 (D)98 B 4.用scanf(“%d,%d”,&a,&b)输入数据时,下面输入法中正确的是
A 。
(A)123,4 (B)123 4 (C)123;4 (D)5.以下关于运算符优先顺序的描述中正确的是_____C___
(A)关系运算符<算术运算符<赋值运算符<逻辑与运算符
(B)逻辑与运算符<关系运算符<算术运算符<赋值运算符
(C)赋值运算符<逻辑与运算符<关系运算符<算术运算符
(D)算术运算符<关系运算符<赋值运算符<逻辑与运算符6.下列程序段中,功能与其它程序段不同的是 B 。
(A)for(i=1,p=1;i<=5;i++) p*=i;
(B)for(i=1;i<=5;) { p=1;p*=i;i++;}
(C)i=1;p=1;while(i<=5) { p*=i;i++;}
(D)i=1;p=1;do { p*=i;i++;} while(i<=5);
7.C语言规定else总是与 D 配对。
(A)缩进位置相同的if (B)同一行上的if
(C)其之前最近的if (D)其之后最近的if
8.以下程序的运行结果为__A____。
main()
{ int n;
for( n=1;n<=10;n++)
{ if( n%3==0) continue;printf(“%d”,n);}
}
(A)12457810(B)369 (C)12 (D) 9.设x和y均为int型变量,则语句x+=y;y=x-y;x-=y;的功能是 D 。
(A)把x和y按从大到小排列(B)把x和y按从小到大排列
(C)无确定结果(D)交换x和y中的值
10.变量的指针,其含义是指该变量的_B____
(A)值(B)地址(C)名(D)一个标志
11.以下函数调用语句中含有 A 个实参。
func((e1,e2),(e3,e4,e5));
(A)2 (B)3 (C)5 (D)语法错误
12.以下正确的描述是____B____
(A)continue语句的作用是结束整个循环的执行
(B)只能在循环体内和switch语句体内使用break语句
(C)在循环体内使用break语句或continue语句的作用相同
(D)goto语句只能用于退出多层循环
13.以下程序运行的结果是 D 。
main()
{int a=2,b=3,c=2;
if(a
if(a
c--;
else
c+=1;
printf(“%dn”,c);
}
(A)0 (B)1 (C)2 (D)3
14.以下叙述正确的是 C 。
(A)在C程序中,main函数必须位于程序的最前面。
(B)C程序每行中只能写一条语句。
(C)C语言本是没有输入输出语句。
(D)在对一个C程序进行编译的过程中,可发现注释中的拼写错误。
15.以下叙述不正确的是 D 。
(A)逗号运算符的运算级最低。
(B)ABC和abc是两个不同的变量。
(C)若a和b类型相同,在执行a=b后,b的自身值不变。
(D)‘a’和“a”是完全等价的常量。
16.执行下面语句后的结果为 C 。
y=10;x=y++;
(A)x=10,y=10 (B)x=11,y=11 (C)x=10,y=11(D)x=11,y=10 17.Char w;int x;float y;double z;则表达式w*x+z-y值的数据类型是A 。
(A)double (B)char (C)int (D)float
18.C语言中要求操作数必须是整数的运算符是 B 。
(A)/ (B)%(C)!= (D)=
19.int x=3,y=2;则表达式x+=x*=y+8的值为 C 。
(A)28 (B)30 (C)60(D)17
20.int a[4]={2,3,4},I;
i=a[0]*a[1]+a[2]*a[3];
i的值为 C 。
(A)2 (B)4 (C)6 (D)10
21.以下正确的函数定义形式是 C 。
(A)double fun(int x,int y);
(B)double fun(int x;int y)
(C)double fun(int x,int y)
(D)double fun(int x,y)
22.C语言允许函数值类型缺省定义,此时该函数值隐含的类型是 B 。
(A)float型(B)int型(C)long型(D)double型23.若
有定义int a[4]={1,2,3};
请问a[a[a[0]]]的值是 C 。
(A)1 (B)2 (C)3 (D)4
24.以下正确的描述是_______B_____
(A)函数的定义可以嵌套,函数的调用不可以嵌套
(B)函数的定义不可以嵌套,函数的调用可以嵌套
(C)函数的定义和函数的调用均不可以嵌套
(D)函数的定义和函数的调用均可以嵌套
25.以下不正确的说法是_____A_______
(A)在函数内的复合语句中定义的变量在本函数范围内有效
(B)在不同函数中可以使用相同名字的变量
(C)形参是局部变量
(D)函数调用结束后,静态局部变量的值仍然保留。
26.已有定义:int x=3,y=4,z=5;
则表达式!(x+y)+z-1&&y+z/2的值是 D 。
(A)6 (B)0 (C)2 (D)1
27.main()
{int n[4]={1,2,3,4},k;
for(k=0;k<4;k++)
{if(k/2) break;
n[k]++;
}
printf(“%dn”,n[++k]);
}
执行后输出的结果是 C 。
(A)2 (B)3 (C)4(D)5
28.判断字符串是否相等,应当使用 D 。
(A)if(a==b) (B)if(a=b) (C)if(strcpy(a,b)) (D)if(!strcmp(a,b)) 29.以下程序运行结果是 A 。
void sub(int x,int y,int *z)
{*z=y-x;}
main()
{int a,b,c;
sub(11,7,&a);sub(5,a,&b);sub(a,b,&c);
printf(“%d,%d,%dn”,a,b,c);
}
(A)-4,-9,-5 (B)-4,9,5 (C)4,-9,-5 (D)-4,9,-5 30.以下程序运行结果是 B 。
main()
{int a[2][3]={1,3,5,4,7,6},i,j,b=a[0][0];
for(i=0;i<2;i++)
for(j=0;j<3;j++)
b=a[i][j];
printf(“%dn”,b);
}
(A)5 (B)7(C)4 (D)1
31.设有如下程序段,下面描述中正确的是( C )。
int k=10; while(k=0) k=k-1;
A 循环执行一次B循环是无限循环C循环体语句一次也不执行D
循环体语句执行一次
32.以下程序运行结果是 A 。
#include
main()
{char s[50]=”1234567”,*p=s;
int i;
i=*(p+5)-*(p+2);
printf(“%dn”,i*strlen(s));
}
(A)21(B)24 (C)14 (D)28
33.以下程序运行结果是 D 。
main()
{int a[]={1,2,3,4,5,6,7,8,9},i,j,k;
for(i=0,j=8;i
{k=a[i];a[i]=a[j];a[j]=k;}
printf(“%dn”,a[1]+a[5]);
}
(A)11 (B)12 (C)13 (D)14
34.以下程序运行结果是 C 。
main()
{int x[]={1,2,3},s,*p=x,i;
for(i=0,s=1;i<3;i++,p++)
s*=*p;
printf(“%dn”,s);
}
(A)2 (B)4 (C)6(D)8
35.下列程序的输出结果是(C)。
main( )
{ int a=7,b=5;
printf("%dn",b=b/a);
}
A 5
B 1
C 0 D不确定值
36.假设变量a,b均为整型,表达式(a=5,b=2,a>b?a++:b++,a+b)的值是( B )。
A 7
B 8
C 9
D 2
37.设a为int型变量,执行下列赋值语句后,a的取值分别是( B )。
a=125.534; a=(int)125.521%4; a=5<2;
A 125,31,1
B 125,1,0
C 125,31, 0
D 125.534,2,1
38.以下程序的输出结果为(A )。
main( )
{int i;
for(i=5;i<8;i++) printf("%c",'*');
printf("t");
}
A ***
B *** *** *** ***
C *** ***
D * * *
39. int , short , long 定义定义的变量在内存中各占的字节数分别是( A )。
A 2,2,4
B 2,4,4
C 4,2,2
D 4,4,2
40. 常量076、0x4b分别表示了(B )进制整数。
A 十、十六
B 八、十六
C 十、八
D 无意义
41. (++a)*6-a%b,h=a==b/c是(A)。
A 算术表达式和关系表达式B算术表达式 C 关系表达式
D 第1个是算术表达式,第2个式子无意义
42. 关于字符常量和字符串常量的描述,错误的是( B )。
A 字符常量是用一对单引号括起来的单个字符。
B 字符常量可以是单引号。
C 字符串常量(简称字符串)是用一对双引号括起来的字符序列。
D 字符串常量可以包含转义字符。
三阅读填空
1.计算球的体积。
main()
{float r,v;
scanf(“ %f”,&r);
v=4*3.14*r*r*r/3 ;
printf(“v=%6.2fn”,v);
}
2.判断质数。
#include
main()
{int i,flag=1,n;
scanf(“%d”,&n);
for(i=2;i<=sqrt(n);i++)
if( n%i==0 )
{flag=0;
break;
}
if( flag==0 )
printf(“%d是质数n”,n);
else
printf(“%d不是质数n”,n);
}
3.计算数组中元素的平均值。
main()
{float average(int a[]);
int a[10],i;
float aver;
for(i=0;i<10;i++)
scanf(“%d”,&a[i]);
aver= average(a) ;
printf(“average is %6.2f”,aver);
}
float average(int a[])
{
int sum=0,i;
float aver;
for(i=0;i<10;i++)
sum=sum+a[i] ;
aver=sum/10;
return aver ;
}
4.统计字符串中字母的个数。
main()
{char s[50];
int i, j=0 ;
scanf(“%s”,s);
for(i=0; s[i]!=’0’ ;i++)
if(s[i]>=’A’&&s[i]<=’Z’||s[i]>=’a’&&s[i]<=’z’)
j++;
printf(“j=%dn”,j);
}
四程序分析:
1.
#include "stdio.h"
main()
{ int a=2,b=10,c=5,d,e,f,g,h,i;
d=a>b; e=a
g=a!=2; h=a==b/c; i=a>=c;
printf("d=%dn",d);
printf("e=%dn",e);
printf(“f=%dn”,f);
printf("g=%dn",g);
printf("h=%dn",h);
printf("i=%dn",i);
}
运行结果是:
2.
main( )
{ int a;
float b;
scanf("%d%f",&a,&b);
printf("a=%d,b=%fn",a,b);
}
从键盘输入10 40.8
运行结果是:
3.
#include "stdio.h"
main()
{ printf("===%dn",sizeof(5555));
printf("===%dn",sizeof(55556));
printf("===%dn",sizeof(86L));
printf("===%dn",sizeof(56.0));
printf("===%dn",sizeof(56.0f));
printf("===%dn",sizeof(56.0L));
}
运行结果是:
4.
#include "stdio.h"
main()
{ char x,y,z;
x= …a';
y=3+x;
printf("%ct%dn",x,x);
printf("%ct%dn",y,y);
x=-28;
z=98+x;
printf("%ct%dn",z,z);
}
运行结果是:
1.
/*a>b不成立,d=0*/
/*a<="" p="">
/*a<=2成立,f=1*/
/*a!=2不成立,g=0*/
/*a==b/c成立,h=1*/
/*a>=c不成立,i=0*/
2.
a=10,b=40.8
3.
===2 /*整型常量5555<32767系统自动分配2个字节,属int型*/ ===4 /*整型常量55556>32767系统分配4个字节, 属long型*/
===4 /*整型常量86L<32767,用户指定是long型常量,占4字节*/
===8 /*不加说明的实型常量是double型,占8字节*/
===4 /*实数后加f的常量,是float型,占4个字节*/
===10 /*实数后加L的常量,是long double型,占10个字节*/
4.
a 97
d 100
F 70
1.主函数是系统提供的标准函数。()
2.C语言允许多条语句写在同一行。()
3.语句“int number;”和“int Number;”定义的是同一个整型变量。()4.if语句可以实现if else语句的功能。()
5.While语句是先执行一次循环体,再判断循环的条件。()
6.do while语句常用在需要至少执行一次循环体的地方。()7.break语句是提前结束本次循环,并不终止循环。()
8.变量的值是存放在变量的存储单元中的数据。
9.变量的指针就是变量的地址。( )
10.字符数组的每个元素可以存放一个字符串。( )
版权声明:本文标题:c语言试题库1 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/jishu/1702706437h427529.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论