C语言真题1.docx
《C语言真题1.docx》由会员分享,可在线阅读,更多相关《C语言真题1.docx(17页珍藏版)》请在冰豆网上搜索。
![C语言真题1.docx](https://file1.bdocx.com/fileroot1/2023-1/22/e40a8734-6ff4-4db5-bfc0-5349550658f2/e40a8734-6ff4-4db5-bfc0-5349550658f21.gif)
C语言真题1
━━━━━━━━━━━━━━
一、判断 共10题 (共计10分)
━━━━━━━━━━━━━━
第1题(1分) 题号:
5
若有定义和语句:
inta[3][3]={{3,5},{8,9},{12,35}},i,sum=0;
for(i=0;i<3;i++)sum+=a[2-i];则sum=21.
答案:
Y
第2题(1分) 题号:
32
若有说明intc;则while(c=getchar());是正确的C语句。
答案:
Y
第3题(1分) 题号:
19
C语言本身不提供输入输出语句,输入和输出操作是由函数来实现的。
答案:
Y
第4题(1分) 题号:
21
语句scanf("%7.2f",&a);是一个合法的scanf函数。
答案:
N
第5题(1分) 题号:
36
若有inti=10,j=2;则执行完i*=j+8;后ⅰ的值为28。
答案:
N
第6题(1分) 题号:
17
x*=y+8等价于x=x*(y+8)。
答案:
Y
第7题(1分) 题号:
22
关系运算符<=与==的优先级相同。
答案:
N
第8题(1分) 题号:
31
共同体变量所占的内存长度等于最长的成员的长度。
答案:
Y
第9题(1分) 题号:
28
如果函数值的类型和return语句中表达式的值不一致,则以
函数类型为准。
答案:
Y
第10题(1分) 题号:
14
用fopen("file","r+");打开的文件"file"可以进行修改。
答案:
Y
第1题(1分) 题号:
606
已定义ch为字符型变量,以下赋值语句中错误的是()。
(A).ch='\';
(B).ch=62+3;
(C).ch=NULL;
(D).ch='\xaa';
答案:
A
第2题(1分) 题号:
141
为了提高程序的运行速度,在函数中对于整型或指针可以使用()型的变量。
(A).auto
(B).register
(C).static
(D).extern
答案:
B
第3题(1分) 题号:
143
C语言中以下几种运算符的优先次序()的排列是正确的。
(A).由高到低为:
!
&&,||,算术运算符,赋值运算符
(B).由高到低为:
!
算术运算符,关系运算符,&&,||,赋值运算符
(C).由高到低为:
算术运算符,关系运算符,赋值运算符,!
&&,||
(D).由高到低为:
算术运算符,关系运算符,!
&&,||,赋值运算符
答案:
B
第4题(1分) 题号:
613
下面有关for循环的正确描述是()。
(A).for循环只能用于循环次数已经确定的情况
(B).for循环是先执行循环循环体语句,后判断表达式
(C).在for循环中,不能用break语句跳出循环体
(D).for循环的循环体语句中,可以包含多条语句,但必须用花括号括起来
答案:
D
第5题(1分) 题号:
673
C语言规定,函数返回值的类型是由()。
(A).return语句中的表达式类型所决定
(B).调用该函数时的主调函数类型所决定
(C).调用该函数时系统临时决定
(D).在定义该函数时所指定的函数类型所决定
第6题(1分) 题号:
112
下列程序的输出结果是()。
main()
{charc1=97,c2=98;
printf("%d%c",c1,c2);
}
(A).9798
(B).97b
(C).a98
(D).ab
答案:
B
第7题(1分) 题号:
591
设有intx=11;则表达式(x++*1/3)的值是()。
(A).3
(B).4
(C).11
(D).12
答案:
A
第8题(1分) 题号:
741
在C程序中,可把整型数以二进制形式存放到文件中的函数是()。
(A).fprintf函数
(B).fread函数
(C).fwrite函数
(D).fputc函数
答案:
A
第9题(1分) 题号:
582
若有定义:
inta=7;floatx=2.5,y=4.7;
则表达式x+a%3*(int)(x+y)%2/4的值是()。
(A).2.500000
(B).2.750000
(C).3.500000
(D).0.000000
答案:
A
第10题(1分) 题号:
106
以下叙述中不正确的是()。
(A).一个好的程序应该有详尽的注释
(B).在C程序中,赋值运算符的优先级最低
(C).在C程序中,j++;是一条赋值语句
(D).C程序中的#include和#define均不是C语句
答案:
B
第11题(1分) 题号:
511
求平方根函数的函数名为()。
(A).cos
(B).abs
(C).pow
(D).sqrt
答案:
D
第12题(1分) 题号:
700
设p1和p2是指向同一个字符串的指针变量,c为字符变量,则以下
不能正确执行的赋值语句是()。
(A).c=*p1+*p2;
(B).p2=c;
(C).p1=p2;
(D).c=*p1*(*p2);
答案:
B
第13题(1分) 题号:
513
inta[10];合法的数组元素的最小下标值为()。
(A).10
(B).9
(C).1
(D).0
答案:
D
第14题(1分) 题号:
594
设intx=1,y=1;表达式(!
x||y--)的值是()。
(A).0
(B).1
(C).2
(D).-1
答案:
B
第15题(1分) 题号:
549
若有double*p,x[10];inti=5;使指针变量p指向元素x[5]的语句为()。
(A).p=&x;
(B).p=x;
(C).p=x;
(D).p=&(x+i)
答案:
A
第16题(1分) 题号:
685
在位运算中,操作数每左移一位,其结果相当于()。
(A).操作数乘以2
(B).操作数除以2
(C).操作数除以4
(D).操作数乘以4
答案:
A
第17题(1分) 题号:
559
一个算法应该具有“确定性”等5个特性,下面对另外4个特性的描述中错误的是()。
(A).有零个或多个输入
(B).有零个或多个输出
(C).有穷性
(D).可行性
答案:
B
第18题(1分) 题号:
731
若要用fopen函数打开一个新的二进制文件,该文件要既能读也能写,
则文件方式字符串应是()。
(A)."ab++"
(B)."wb+"
(C)."rb+"
(D)."ab"
答案:
B
第19题(1分) 题号:
607
若a为int类型,且其值为3,则执行完表达式a+=a-=a*a后,a的值是()。
(A).-3
(B).9
(C).-12
(D).6
答案:
C
第20题(1分) 题号:
687
表达式,0x13&0x17的值是()。
(A).0x17
(B).0x13
(C).0xf8
(D).0xec
答案:
B
第21题(1分) 题号:
734
以下可作为函数fopen中第一个参数的正确格式是()。
(A).c:
user\text.txt
(B).c:
\user\text.txt
(C)."c:
\user\text.txt"
(D)."c:
\\user\\text.txt"
答案:
D
第22题(1分) 题号:
699
下面说明不正确的是()。
(A).chara[10]="china";
(B).chara[10],*p=a;p="china"
(C).char*a;a="china";
(D).chara[10],*p;p=a="china"
答案:
D
第23题(1分) 题号:
135
已知字母a的ASCII十进制代码为97,则执行下列语句后的输出结果为()。
chara='a'; a--;
printf("%d,%c\n",a+'2'-'0',a+'3'-'0');
(A).b,c
(B).a--运算不合法,故有语法错
(C).98,c
(D).格式描述和输出项不匹配,输出无定值
答案:
C
第24题(1分) 题号:
526
用户定义的函数不可以调用的函数是()。
(A).非整型返回值的
(B).本文件外的
(C).main函数
(D).本函数下面定义的
答案:
C
第25题(1分) 题号:
636
若二维数组a有m列,则在a[j]前的元素个数为()。
(A).j*m+i
(B).i*m+j
(C).i*m+j-1
(D).i*m+j+1
答案:
B
第26题(1分) 题号:
693
以下各选项企图说明一种新的类型名,其中正确的是()。
(A).typedefv1int;
(B).typedefv2=int;
(C).typedefintv3;
(D).typedefv4:
int;
答案:
C
第27题(1分) 题号:
704
变量的指针,其含义是指该变量的()。
(A).值
(B).地址
(C).名
(D).一个标志
答案:
B
第28题(1分) 题号:
120
假设所有变量均为整型,表达式:
a=2,b=5,a>b?
a++:
b++,a+b的值是()。
(A).7
(B).8
(C).9
(D).2
答案:
B
第29题(1分) 题号:
562
下列叙述中正确的是()。
(A).C语言编译时不检查语法
(B).C语言的子程序有过程和函数两种
(C).C语言的函数可以嵌套定义
(D).C语言所有函数都是外部函数
答案:
D
第30题(1分) 题号:
523
函数的形式参数隐含的存储类型说明是()。
(A).extern
(B).static
(C).register
(D).auto
答案:
D
第31题(1分) 题号:
92
以下的选择中,正确的赋值语句是()。
(A).a=1,b=2
(B).j++
(C).a=b=5;
(D).y=int(x)
答案:
C
第32题(1分) 题号:
105
以下运算符中,优先级最高的运算符是()。
(A).=
(B).!
=
(C).*(乘号)
(D).()
答案:
D
第33题(1分) 题号:
616
以下不是无限循环的语句为()。
(A).for(y=0,x=1;x>++y;x=i++)i=x;
(B).for(;;x++=i);
(C).while
(1){x++;}
(D).for(i=10;;i--)sum+=i;
答案:
A
第34题(1分) 题号:
656
以下数组定义中不正确的是()。
(A).inta[2][3];
(B).intb[][3]={0,1,2,3};
(C).intc[100][100]={0};
(D).intd[3][]={{1,2},{1,2,3},{1,2,3,4}};
答案:
D
第35题(1分) 题号:
154
在以下给出的表达式中,与do--while(E)语句中的(E)不等价的表达式是()。
(A).(!
E==0)
(B).(E>0||E<0)
(C).(E==0)
(D).(E!
=0)
答案:
C
第36题(1分) 题号:
204
在下列程序段中,枚举变量c1,c2的值依次是()。
enumcolor{red,yellow,blue=4,green,white}c1,c2;
c1=yellow;c2=white;
printf("%d,%d\n",c1,c2);
(A).1,6
(B).2,5
(C).1,4
(D).2,6
答案:
A
第37题(1分) 题号:
136
下列程序的输出结果为()。
main()
{intm=7,n=4;
float a=38.4,b=6.4,x;
x=m/2+n*a/b+1/2;
printf("%f\n",x);
}
(A).27.000000
(B).27.500000
(C).28.000000
(D).28.500000
答案:
A
第38题(1分) 题号:
633
对以下说明语句 inta[10]={6,7,8,9,10}; 的正确理解是()。
(A).将5个初值依次赋给a[1]至a[5]
(B).将5个初值依次赋给a[0]至a[4]
(C).将5个初值依次赋给a[6]至a[10]
(D).因为数组长度与初值的个数不相同,所以此语句不正确
答案:
B
第39题(1分) 题号:
598
下列四组选项中,均不是C语言关键字的选项是()。
(A).define IF type
(B).getc char printf
(C).include scanf case
(D).while go pow
答案:
A
第40题(1分) 题号:
601
下面四个选项中,均是不合法的浮点数的选项是()。
(A).160. 0.12 e3
(B).123 2e4.2 .e5
(C).-.18 123e4 0.0
(D).-e3 .234 1e3
答案:
B
━━━━━━━━━━━━━━━━
三、程序填空 共2题 (共计20分)
━━━━━━━━━━━━━━━━
第1题(10分) 题号:
426
/*-------------------------------------------------------
【程序填空】
---------------------------------------------------------
题目:
百马百担问题:
有100匹马,驮100担货,大马驮三担,中
马驮2担,两匹小马驮一担,求大、中、小马各多少匹?
-------------------------------------------------------*/
#include
main()
{
inthb,hm,hl,n=0;
/***********SPACE***********/
for(hb=0;hb<=100;hb+=【?
】)
/***********SPACE***********/
for(hm=0;hm<=100-hb;hm+=【?
】)
{
/***********SPACE***********/
hl=100-hb-【?
】;
/***********SPACE***********/
if(hb/3+hm/2+2*【?
】==100)
{
n++;
printf("hb=%d,hm=%d,hl=%d\n",hb/3,hm/2,2*hl);
}
}
printf("n=%d\n",n);
}
答案:
1).3
2).2
3).hm
4).hl
第2题(10分) 题号:
438
/*-------------------------------------------------------
【程序填空】
---------------------------------------------------------
题目:
求出二维数组中的最大元素值。
-------------------------------------------------------*/
#include"stdio.h"
voidmain()
{
inta[3][4]={{1,3,5,7},{2,4,6,8},{15,17,34,12}};
/***********SPACE***********/
printf("maxvalueis%d\n",【?
】);
}
max_value(m,n,array)
/***********SPACE***********/
intm,n,【?
】;
{
inti,j,max;
max=array[0][0];
for(i=0;i for(j=0;j /***********SPACE***********/
if(max】;
return(max);
}
答案:
1).max_value(3,4,a)
2).array[][4]或array[3][4]或(*array)[4]
3).max=array[j]或max=*(*(array+i)+j)或max=*(array+j)
━━━━━━━━━━━━━━━━
第1题(10分) 题号:
357
/*------------------------------------------------------
【程序改错】
--------------------------------------------------------
功能:
请编写函数fun,对长度为8个字符的字符串,将8个字符按
降序排列。
例如:
原来的字符串为CEAedcab,排序后输出为edcbaECA。
--------------------------------------------------------
注意:
不可以增加或删除程序行,也不可以更改程序的
结构。
------------------------------------------------------*/
#include
#include
#include
intfun(char*s,intnum)
{
/**********FOUND**********/
inti;j;
chart;
for(i=0;i /**********FOUND**********/
for(j=i;j /**********FOUND**********/
if(s>s[j])
{
t=s;
s=s[j];
s[j]=t;
}
}
main()
{
chars[10];
printf("输入8个字符的字符串:
");
gets(s);
fun(s,8);
printf("\n%s",s);
}
答案:
1).inti,j;或inti;intj;
2).for(j=i+1;j 3).if(s
第1题(10分) 题号:
362
/*------------------------------------------------
【程序设计】
--------------------------------------------------
功能:
编写程序,求矩阵(3行3列)与2的乘积
例如:
输入下面的矩阵:
100200300
400500600
700800900
程序输出:
200 400 600
80010001200
140016001800
--------------------------------------------------
注意:
部分源程序给出如下。
请勿改动主函数main
和其它函数中的任何内容,仅在函数fun的花
括号中填入所编写的若干语句。
------------------------------------------------*/
#include"stdio.h"
intfun(intarray[3][3])
{
/**********Program**********/
/********** End **********/
}
main()
{
voidNONO();
inti,j;
intarray[3][3]={{100,200,300},
{400,500,600},
{700,800,900}};
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
printf("%7d",array[j]);
printf("\n");
}
fun(array);
printf("Convertedarray:
\n");
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
printf("%7d",array[j]);
printf("\n");
}
NONO();
}
voidNONO()
{
inti,j,array[3][3];
FILE*rf,*wf;
rf=fopen("in.dat","r");
wf=fopen("out.dat","w");
for(i=0;i<3;i++)
for(j=0;j<3;j++)
fscanf(rf,"%d",&array[j]);
fun(array);
for(i=0;i