一、单选题:(每题1.5分,共60分)
1、C语言程序的基本单位是_______.
A.语句
B.函数
C.程序行
D.字符
2、C语言程序由( )组成
A.子程序
B.过程
C.函数
D.主程序段程序
3、算法的表示方法有________。
A.自然语言,传统流程图,N-S流程图,伪代码,计算机语言
B.高级语言,汇编语言,机器语言
C.C语言,QBASIC语言,InterDev
D.图形图像法,描述法,编程法
E.计算机语言
4、以下程序的输出结果是
main( )
{ int k=17;
printf("%d,%o,%x \n",k,k,k);
}
A.17,021,0x11
B.17,17,17
C.17,0x11,021
D.17,21,11
5、下列变量定义中合法的是
A. short _a=1-.le-1;
B.double b=1+5e2.5;
C.long do=0xfdaL;
D.float 2_and=1-e-3;
6、C语言中合法的字符常量是____
A.'\084'
B.'\X43'
C.'ab'
D."\0"
7、下面说法中正确的是( )
A.int型和long型运算先将int型转换成unsigned型,再转换
B.两个float型运算结果为double型
C.只要表达式中存在double型,所有其他类型数据都必须转
D.表达式中的类型转换与运算顺序有关
8、以下不正确的叙述是
A.在C程序中,逗号运算符的优先级最低
B.在C程序中,APH和aph是两个不同的变量
C.若a和b类型相同,在计算了赋值表达式a=b后b中的值将放入a中,而b中的值不变
D. 当从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输入实型数值
9、设变量n为float类型,m为int类型,则以下能实现将n中的数值保留小数点后两位,第三位进行四舍五入运算的表达式是
A.n=(n*100+0.5)/100.0
B.m=n*100+0.5,n=m/100.0
C.n=n*100+0.5/100.0
D.n=(n/100+0.5)*100.0
10、下列运算符中优先级最高的是
A.<
B.+
C.&&
D.!=
11、若变量已正确定义并赋值,下面符合C语言语法的表达式是
A.a:=b+1
B.a=b=c+2
C.int 18.5%3
D.a=a+7:c+b
12、设CH是字符型变量,其值为'A',下列表达式的值是
CH=(CH > ='A'&&CH < ='Z')?(CH+32):CH
A.A
B.a
C.z
D.Z
13、表达式18/4*sqrt(4.0)/8值的数据类型为
A.int
B.float
C.double
D.不确定
14、在C语言中,要求运算数必须是整型的运算符是
A./
B. %
C.!
D.>
15、以下说法中正确的是
A.#define和printf都是C语句
B.#define是C语句,而printf不是
C.printf是C语句,但#define不是
D.#define和printf都不是C语句
16、下面程序的输出是
main()
{
int a=-1,b=4,k;
k=(a++<=0)&&(!(b--<=0));
printf("%d%d%d%\n",k,a,b);
}
A.0 0 3
B.0 1 2
C.1 0 3
D.1 1 2
17、设有:int a=1,b=2,c=3,d=4,m=2,n=2;
执行 (m=a > b)&&(n=c > d)后n的值是
A.1
B.2
C.3
D.4
18、若有条件表达式 (exp)?a++:b--,则以下表达式中能完全等价于表达式(exp)的是
A.(exp==0
B. (exp!=0)
C.(exp==1)
D.(exp!=1)
19、为表示关系X≥Y≥Z应使用C语言表达式:__
A. (X > =Y)&&(Y > =Z)
B.(X > =Y)and(Y > =Z)
C.(X≥ Y≥ Z)
D.(X≥ Y)&(Y≥ Z)
20、能正确表示逻辑关系:"a ≥ =10或a ≤ 0"的C语言表达式是
A.a > =10 or a < =0
B.a > =0||a < =10
C.a > =10 && a < =0
D.a < =0 || a>=10
21、下面的程序是______
main()
{ int x=3,y=0,z=0;
if (x==y+z) printf("****");
else printf("####");
}
A.有语法错误不能过通过编译
B.输出****
C.可能通过编译,但是不能通过连接,因而不能运行
D. 输出####
22、执行下面语句后的输出为( )
int i= -1;
if (i < =0)printf("****\n")
else printf("%%%%\n")
A.****
B.%%%%
C.%%%%C
D. 有语法错,不能执行
23、若运行以下程序时,从键盘输入 ADescriptor < CR > ( < CR > 表示回车),则下面程序的运行结果是
#include
main()
{char c;
int v0=0,v1=0,v2=0;
do{
switch(c=getchar())
{case 'a':case 'A':
case 'e':case 'E':
case 'i':case 'I':
case 'o':case 'O':
case 'u':case 'U':v1+=1;
default:v0+=1;v2+=1;
}
}while(c!='\n');
printf("v0=%d,v1=%d,v2=%d\n",v0,v1,v2);
}
A.v0=7,v1=4,v2=7
B.v0=8,v1=4,v2=8
C.v0=11,v1=4,v2=11
D. v0=12,v1=4,v2=12
24、以下程序的输出结果是
main( )
{ int n=4;
while(n--)printf("%d ",--n);
}
A.2 0
B.3 1
C.3 2 1
D.2 1 0
25、有一堆零件(100到200之间),如果分成4个零件一组的若干组,则多2个零件;若分成7个零件一组,则多3个零件;若分成9个零件一组,则多5个零件。下面程序是求这堆零件总数,请选择填空。
#include
main()
{int i;
for(i=100;i<200;i++)
if((i-2)%4==0)
if(!((i-3)%7))
if( ______ )
printf("%d",i);
}
A.i%9=5
B.i%9!=5
C.(i-5)%9!=0
D.i%9==5
26、以下程序的输出结果是
{ 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
27、以下程序的输出结果是
#include < stdio.h >
#include < string.h >
main()
{ char b1[8]="abcdefg",b2[8],*pb=b1+3;
while (--pb > = b1) strcpy(b2,pb);
printf("%d\n",strlen(b2));
}
A.8
B.3
C.1
D.7
28、下面程序的功能是将从键盘输入的一对数,由小到大排序输出,当输入一对相等数时结束循环,请选择填空
#include
main()
{int a,b,t;
scanf("%d%d",&a,&b);
while( ___________ )
{if(a > b)
{t=a;a=b;b=t;}
printf("%d,%d\n",a,b);
scanf("%d%d",&a,&b);
}
}
A.!a=b
B.a!=b
C.a==b
D.a=b
29、下面程序的输出结果是( )。
#include
main()
{int x=10,y=10,i;
for(i=0;x>8;y=++i)
printf(”%d%d”,x--,y);
}
A.10 1 9 2
B.9 8 7 6
C.10 9 9 0
D. 10 10 9 1
30、以下程序的输出结果是
main( )
{ int i,x[3][3]={9,8,7,6,5,4,3,2,1};
for(i=0;i<4;i+=2)printf("%d ",x[i][i]);
}
A.5 2
B.9 1
C.5 3
D.9 7
31、若有说明: int a[3][4]={0};则下面正确的叙述是
A.只有元素a[0][0]可得到初值0
B.此说明语句不正确
C.数组a中各元素都可得到初值,但其值不一定为0
D. 数组a中每个元素均可得到初值0
32、以下程序的输出结果是
main( )
{ char a[10]={'1','2','3','4','5','6','7','8','9',0},*p;int i;
i=8;
p=a+i;
printf("%s\n",p-3);
}
A.6
B.6789
C.'6'
D.789
33、以下程序的输出结果是
#define f(x) x*x
main( )
{ int a=6,b=2,c;
c=f(a) / f(b);
printf("%d \n",c);
}
A.9
B.6
C.36
D.18
34、若有说明语句
char a[]="It is mine";
char *p="It is mine";
则以下不正确的叙述是
A.a+1表示的是字符t的地址
B.p指向另外的字符串时,字符串的长度不受限制
C.p变量中存放的地址值可以改变
D.a中只能存放10个字符
35、请选出正确的程序段
A) int *p; B) int *s, k;
scanf("%d",p); *s=100;
……
C) int *s, k; D) int *s, k;
char *p, c; char *p, e;
s=&k; s=&k;
p=&c; p=&c;
A.
B.
C.
D.
36、在位运算中,操作数每右移一位,其结果相当于
A.操作数乘以2
B.操作数除以2
C.操作数乘以4
D.操作数除以4
37、请读程序:
#include
void FUN(int S[])
{ static int J=0;
do
{
S[J] +=S[J+1];
}
while( ++J<2);
}
main()
{ int K, A[10]={ 1,2,3,4,5};
for( K=1;K<3;K++) FUN(A);
for (K=0;K<5;K++) printf("%d",A[K]);
}
上面程序输出结果是
A.34756
B.23445
C.35745
D.12345
38、下列程序段的输出结果是( )。
#include
void fun(int *x,int *Y)
{printf(”%d%d”,*X,*Y);*X=3;*Y=4;} main()
{int X=1,Y=2;
fun(&y,&x);
prinff(”%d%d”,x,Y);
}
A.2 1 4 3
B.1 2 1 2
C.2 1 2 1
D.2 1 3 4
39、下面程序的输出结果是( )。
#include
main()
{int a[]={1,2,3,4,5,6,7,8,9,0},*p;
P=a:
printf(”%d\n”,*P+9);
}
A.0
B.1
C.10
D.9
40、分析以下程序的运行结果( )。
#include
func(int a,int b)
{
int c;
e=a+b;
retum c;
}
main() 。
{
int x=6,r;
r=func(x,x+=2);
printf(”%d\n”,r);
}
A.14
B.15
C. 16
D.17
填空题:(每题1.5分,共24分)
1、在C语言中(以16位PC机为例),一个char型数据在内存中所占的字节数为_______;一个int型数据在内存中所占的字节数为_______
答案:1,2
2、设有以下变量定义,并已赋确定的值
char w; int x; float y; double z;
则表达式:w*x+z-y所求得的数据类型为__________ 。
ouble
3、若x和n均是int型变量,且x和n的初值均为5,则计算表达式后x的值为________,n的值为_________
x+=n++
答案:10,6
4、若有定义:int b=7;float a=2.5,c=4.7;则下面表达式的值为______
a+(int)(b/3*(int)(a+c)/2)%4
答案:5.500000
5、若有定义:int a=8,b=5,C;,执行语句C=a/b+0.4;后,c的值为
答案:1
6、以下程序不用第三个变量,实现将两个数进行对调操作:
#include
main()
{ int a , b ;
scanf ("%d%d" , &a , &b);
printf("a=%d b=%d\n" , a , b );
a=a+b;
b=(________);
a=a-b;
printf("a=%d b=%d\n",a,b);}
-b
7、直接使用printf()的格式符输出十六进制数。本题程序如下:
﹟include ﹤ stdio.h ﹥
void main()
{
int I;
scanf("%d",&I);
printf("%d(10)﹤ = ﹥% x(16)﹨n",I,I );
}
输入100的执行结果为__________。
答案:100(10) < = > 64(16)
8、在c语言中,关系运算符的优先级别是——。
答案:<,>,<=,>=,==,!=
9、表示“整数x的绝对值大于5”时值为“真”的C语言表达式是——。答案:x>5||x<-5
10、下列程序段的输出结果是 _____________ 。
int n='c';
switch(n++)
{ default: printf("error");break;
case 'a':case 'A':case 'b':case 'B':printf("good");break;
case 'c':case 'C':printf("pass");
case 'd':case 'D':printf("warm");
}
答案:passwarm
11、设有以下程序:
main()
{ int n1,n2;
scanf("%d",&n2);
while(n2!=0)
{ n1=n2%10;
n2=n2/10;
printf("%d",n1);
}
}
程序运行后,如果从键盘上输入1298;则输出结果为_________。
答案:8921
12、下面程序段是从键盘输入的字符中统计数字字符的个数,用换行符结束循环。请填空
int n=0,c;
c=getchar();
while( _______ )
{if( ______ ) n++;
c=getchar();
}
!='\n',c > ='0'&&c < ='9'
13、以下程序的运行结果是 __________________
main()
{ static char a[]={'*','*','*','*','*'};
int i,j,k;
for(i=0;i < 5;i++)
{
printf("\n");
for(j=0;j < i;j++) printf("%c",' ');
for(k=0;k < 5;k++) printf("%c",a[k]);
}
}
答案:****
****
****
****
14、若有定义:int a[3][4]={{1,2},{0},{4,6,8,10}};则初始化后,a[1][2]得到的初值是____,a[2][1]得到的初值是______。
答案:0
6
15、若有定义语句:char s[100],d[100]; int j=0, i=0;,且s中已赋字符串,请填空以实现字符串拷贝。(注:不得使用逗号表达式)
while([i]){ d[j]= _____________;j++;i++;}
d[j]=0;
答案:s[i++]
16、以下函数用以求x的y次方,请填空。
double fun(double x,int y)
{
int i:
double z=1.0:
for(i-1;i_________;i++)
z=________;
return z:
}
答案:<=y z*x
程序设计题:(请在以下3题中任选2题作答,若3道全部解答,以前2道为准,每题8分,共16分)1、设某国今年的国民生产总值为45600亿元,若今后每年以8%的增长率增长,计算多少年后能实现国民生产总值翻两番?
答案:main()
{
int n;
float a,s;
for(s=0,n=0,a=45600.0;s<=3*45600.0;n++)
{
a=a+a*0.08;
s=a;
}
printf("%d\n",n);
}
本题参考答案:15
2、编程序求1+3+5+7+9+…这样的数之和。如果累加数大于900时,则程序终止并输出结果。
答案:main()
{
int i=1,sum=0;
while(sum < =900)
{
sum=sum+i;
i=i+2;
}
printf("\n%d",sum);
}
参考答案: 936
3、编程序求1~125的平方根的和并输出结果。(保留小数点两位)
答案:include "math.h"
main()
{float a,s=0;
clrscr();
for(a=1;a < =125;a++) {s=s+sqrt(a);
}
printf("%.2f",s);
}
本题答案:937.08
以下叙述中正确的是(D)。 A.C语言中的函数不可以单独进行编译 B.C语言的源程序不必通过编译就可以直接运行 C.C源程序经编译形成的二进制代码可以直接运行 D.C语言中的每条可执行语句最终都将被转换成二进制的机器指令 若有说明语句:char c='\72';则变量c(D)。 A.说明不合法,c的值不确定 B.包含2个字符 C.包含3个字符 D.包含1个字符 定义字符变量c1的值是'A',c2的值是'D'. 执行语句printf("%d,%d",c1,c2-2);后,输出结果是(A)。 A.65,66 B.65,68 C.A,68 D.A,B 若希望当A的值为奇数时,表达式的值为"真",A的值为偶数时,表达式的值为"假",则以下不能满足要求的表达式是(D)。 A.A%2==1 B.A%2 C.!(A%2==0) D.!(A%2) 为了避免在嵌套的条件语句 if-else 中产生二义性,C语言规定: else子句总是与(A)配对。 A.其之前最近的if B.其之后最近的if C.同一行上的if D.缩排位置相同的if 下面程序段运行的结果是(A). x=-1; do{ x=x*x; }while (!x); A.循环执行一次 B.有语法错误 C.死循环 D.循环执行两次 以下正确的描述是(A). A.只能在循环体内和switch语句内使用break语句 B.continue语句的作用是终止整个循环的执行 C.从多层嵌套的外层循环中退出时,只能使用goto语句
D.在循环体内使用break和continue语句的作用相同 以下不能正确定义二维数组的选项是(A)。 A.int a[2][]={{1,2},{3,4}}; B.int a[2][2]={{1},2,3}; C.int a[2][2]={{1},{2}}; D.int a[][2]={1,2,3,4}; char a[10];不能将字符串"abc"存储在数组中的是(B)。 A.int i;for(i=0;i<3;i++)a[i]=i+97;a[i]=0; B.a="abc"; C.strcpy(a,"abc"); D.a[0]=0;strcat(a,"abc"); 在C语言中,引用数组元素时,其数组下标的数据类型允许是(B)。 A.整型常量 B.整型常量或整型表达式 C.整型表达式 D.任何类型的表达式 在定义全局变量和局部静态变量的同时赋值,变量的初始化在(C)时确定的. A.运行 B.编辑 C.编译 D.调试 以下不正确的说法是:C语言规定(C)。 A.实参可以是常量,变量或表达式 B.实参可以为任何类型 C.形参可以是常量,变量或表达式 D.形参应与其对应的实参类型一致 C语言程序中必须有的函数是(B)。 A.#include "stdio.h" B.main C.printf D.scanf 在"文件包含"的预处理中,被包含的文件应是(A). A.文本文件 B.可执行文件 C.目标文件 D.二进制文件 若有说明:int *p,m=5,n;以下正确的程序段是(D)。 A.scanf("%d",&n);*p=n; B.p=&n;scanf("%d",*p)
安徽农业大学经济技术学院 《C 语言程序设计》模拟试卷(A) 所有答案写在答题卡上,否则不得分 一、单项选择题(每题1分,共30分) 1.以下选项中叙述正确的是________。 A )C 语言程序总是从第一个定义的函数开执行 B )在 C 语言程序中,被调用的函数必须在main()函数中声明 C )C 语言程序总是从main()函数开始执行 D )C 语言程序中的main()函数必须放在程序的开始部分 2.C 语言程序的三种基本结构是顺序结构、选择结构和________结构。 A )循环 B )递归 C )转移 D )嵌套 3以下选项中不属于C 语言的基本数据类型的是________。 A )int B )double C )char D )bool 4.以下选项中正确的C 语言标示符是________。 A)2b B )x_1 C )a@b D)3#h 5.设C 语言中,一个int 型数据在内存中占2个字节,则unsigned int 型数据的取值范围为________。 A )0~255 B )0~32767 C )0~65535 D )0~2147483647 6.以下选项中,和语句k=n++;等价的是________。 A )k=n,n=n+1; B )n=n+1,k=n; C )k=++n; D )k=n+1; 7.已知:int i=3,j=2;,则执行语句j*=i+2;printf("%d",j);后,输出结果是________。 A )8 B )10 C )12 D )14 8.已知:int a=2,b=3,c;,执行语句c=(a=2,b=2);后,c 的值是________。 A )2 B )3 C )4 D )5 9.已知:int x,y;float z;,若要给变量x,y,z 输入数据,以下正确的输入语句是________。 A )scanf("%d,%d,%d",x,y,z); B )scanf("%d,%d,%f",&x;&y;&z); C )scanf("%d,%d,%f",&x,&y,&z ); D )scanf("%2d,%2d,%3.2d",x;y;z ); 10.华氏温度f 和摄氏温度c 的关系是)32(9 5-= f c 。已知:float c,f;,由华氏温度f 求摄氏温度c 的不正确的赋值表达式是________。 A )c=5/9(f-32) B )c=5.0/9*(f-32) C )c=5*(f-32)/9 D )c=(float)5/9*(f-32) 11.一个C 程序中要调用sqrt()函数时,应在程序中包含的头文件是________。 A )stdio.h B )math.h C )string.h D )stdlib.h 12.已知:char c='a';,则执行语句printf("%c",c-32);后输出结果是________。 A )A B )65 C )97 D )出错 13.能正确表示逻辑关系“a ≥5或a ≤-1”的C 语言表达式是________。 A )a>=5.or.a<=-1 B) a>=5.and.a<=-1 C) a>=5&&a<=-1 D )a>=5‖a<=-1
,. 单选题: 1、执行下面的程序段后,变量k中的值为 s[0]=k; k=s[1]*10; A. 不定值 B. 33 C. 30 D. 10 答案: A 2、设有以下定义: #define N 3 #define Y(n) ( (N+1)*n) 则执行语句:z=2 * (N+Y(5+1));后,z的值为_______.2*(3+ (4*5+1) A. 出错 B. 42 C. 48 D. 54 答案: C 3、若已定义X和Y为double型,则表达式:x=1,y=x+3/2的值是____ A. 1 B. 2 C. 2.0 D. 2.5 答案: c 4、请选出以下语句的输出结果____ printf("%d\n",strlen("\t\ 065\xff\n")) A. 5 B. 4 C. 8 D. 输出项不合法,无正常输出 答案: B 5、为避免嵌套的条件分支语句if…else的二义性,C语言规定,C 程序中的 else总是与____组成配对关系。 A. 其上面距它最近的,并且没有其他else与其配对的if相配对 B. 在同一行上的if C. 缩排位置相同的if D. 在其之前未配对的if 答案: A 6、若X和Y都是int型变量,X=100,Y=200,且有下面的程序片段: printf("%d",(X,Y)); 上面程序片段的输出结果是 A. 200 B. 100 C. 100 200 D. 输出格式符不够,输出不确定的值 答案: A 7、请读程序片段(字符串内没有空格字符): printf("%d\n", strlen("ATS\n012\1\\")); 上面程序片段的输出结果是 A. 11 B. 9 C. 10 D. 8 答案: B 8、设有以下程序段 int x=0,s=0; while(!x!=0) s+=++x; printf("%d",s); 则______ A. 运行程序段后输出0 B. 运行程序段后输出1 C. 程序段中的控制表达式是非法的 D. 程序段执行无限次 答案: B 9、阅读下列程序: main( ) { int n[3],i,j,k; for(i=0;i〈3;i++) n[i]=0; k=2; for (i=0;i < k;i++) i=0: n[0]=1,n[1]=2 i=1: =3 =3 for (j=0;j〈2;j++) n[j]=n[i]+1; printf("%d\n",n[1]); } 下述程序运行后输出结果是 A. 2 B. 1 C. 0 D. 3 答案: D 10、输入一个华氏温度,要求输出摄氏温度。计算公式为: c=5/9(F-32),以下程序正确的是() A. main() { float c,F; scanf("%f,%f",&c,&F); c=5/9*(F-32); printf("摄氏温度是:%f\n",c); }
注意: 1. 本练习时间为1小时,如有多余时间请完成实验5 2. 请单号的机器完成A 卷测试题,双号机器完成B 卷测试题 3. 以自己学号为文件夹名,并上传1.cpp,2.cpp,3.cpp 3个源代码文件 A 卷测试题目(机器号为单号学生完成) 1. 输入两个值分别为a,b,请输出ab b 42 的值, 程序保存为1.cpp. 2. 编写程序,判断输入的两个小数是否相互等, 程序保存为2.cpp. 3.编写程序, [问题的描述] 百元买百鸡问题。假定小鸡每只5角,公鸡每只2元,母鸡每只3元。现有100元钱要买100只鸡,列出所有可能的购鸡方案。 程序保存为3.cpp. B 卷测试题目(机器号为双号学生完成) 1. 编写程序 [问题的描述] 有2个变量,分别存入2个不同的整数,有人试图将这2个变量中的值互换。 [案例] 原始状态为:x=5 y=6 互换后的状态为:y=6 x=5 程序只允许定义两个变量,程序保存为1.cpp.
2.编写程序,连续输入10个值,请输出输入值的最大值和最小值, 程序保存为2.cpp. 3.[问题的描述] 打印出下图所示的杨辉三角形 两个未知数和的幂次方运算后的系数问题,比如(x+y)的平方=x的平方+2xy+y的平方,这样系数就是1,2,1这就是杨辉三角的其中一行,立方,四次方,运算的结果看看各项的系数,这就是杨辉三角,也叫贾宪三角,2项式乘方展开式的系数规律。如图,在贾宪三角中,第3行的第三个数恰好对应着两数和的平方公式依次类推,杨辉三角是一个由数字排列成的三角形数表,一般形式如下图所示。 [案例] 输出10行的图
试卷编号:8156 所属语言:C语言 试卷方案:C语言201006模拟 试卷总分:100分 共有题型:5种 ━━━━━━━━━━━━━━━ 一、判断共10题(共计20分) ━━━━━━━━━━━━━━━ 第1题(2.0分)题号:1225 在给变量命名时,C语言区分大小写字母,即认为Name和name不是同一个变量. 答案:Y 第2题(2.0分)题号:1279 循环结构while、do while、for不可以互相嵌套. 答案:N 第3题(2.0分)题号:1140 链表中的任何一个结点,必然要包括一个指针域. 答案:Y 第4题(2.0分)题号:1265 在书写C程序时,一行内只能写一条语句,一条语句也不能写在多行上. 答案:N 第5题(2.0分)题号:1280 C语言程序中用到的所有变量必须在使用之前进行定义. 答案:Y 第6题(2.0分)题号:1269 若定义int a[4]={1,2,3,4};若超界引用a[4]则编译时不报错. 答案:Y 第7题(2.0分)题号:19 C语言本身不提供输入输出语句,输入和输出操作是由函数来 实现的。 答案:Y 第8题(2.0分)题号:11 通过return语句,函数可以带回一个或一个以上的返回值。 答案:N 第9题(2.0分)题号:24
对于数值型数组,C语言中只能逐个引用数组元素而不能一次引用整个数组。答案:Y 第10题(2.0分)题号:33 int i,*p=&i;是正确的C说明。 答案:Y ━━━━━━━━━━━━━━━━━ 二、单项选择共15题(共计30分) ━━━━━━━━━━━━━━━━━ 第1题(2.0分)题号:87 C语言源程序的基本单位是()。 A:过程 B:函数 C:子程序 D:标识符 答案:B 第2题(2.0分)题号:110 C语言中,char类型数据占()。 A:1个字节 B:2个字节 C:4个字节 D:8个字节 答案:A 第3题(2.0分)题号:112 下列程序的输出结果是()。 main() {char c1=97,c2=98; printf("%d %c",c1,c2); } A:97 98 B:97 b C:a 98 D:a b 答案:B 第4题(2.0分)题号:170 关于return语句,下列正确的说法是()。
第二套试题 一、判断题 第1题:C语言允许直接访问物理地址。参考答案:对第2题:在标准C语言中,共用体变量中的各成员的首地址是不一样的。参考答案:错第3题:全局变量的作用域一定比局部变量的作用域范围大参考答案:错 第4题:C语言的源程序不必通过编译就可以直接运行参考答案:错 第5题:指针变量与变量的指针都与地址有关参考答案:对 第6题:C语言的函数可以嵌套定义参考答案:错 第7题:局部变量的作用域是当前文件。参考答案:错 第8题:在标准C语言中,宏替换是程序运行时完成的。参考答案:错 第9题:在标准C中,“=”是判断两个数是否相等。参考答案:错 第10题:C语言编译时不检查语法参考答案:错 二、选择题(请选择正确的选项) 第1题:以下程序的输出结果是 main( ) { int n=4; while(n--) printf("%d ",--n); } 参考答案:A A、2 0 B、3 1 C、3 2 1 D、2 1 0 第2题:数组定义为int a[3][2]={1, 2, 3, 4, 5, 6},数组元素_____的值为6。 参考答案:B A、a[3][2] B、a[2][1] C、a[1][2] D、a[2][3] 第3题:字符串指针变量中存入的是 参考答案:A A、字符串的首地址 B、字符串 C、第一个字符 D、字符串变量 第4题:下列表达式的值为0的是() 参考答案:C A、3﹪5 B、3/5.0 C、3/5 D、3<5 第5题:C语言中以追加方式打开一个文件应选择_______________参数参考答案:D A、“r” B、“w” C、“rb” D、“a” 第6题:C语言中while和do-while循环的主要区别是 参考答案:A A、do-while循环体至少无条件执行一次 B、while的循环控制条件比do-while循环控制条件严格 C、do-while循环允许从外部转到循环体内 D、do-while循环体不能是复合语句
《C语言程序设计》模拟试卷一 一、单项选择题(每题2分,共30分) 1、下列有关C语言的叙述中错误的是()。 A) C语句必须以分号结束 B) 任何一个C程序中有且只有一个主函数 C) 复合语句在语法上可被看作一条语句 D) C程序中对数据的任何操作都可由运算符实现 2、以下不能定义为用户标识符的是()。 A) MAIN B) _HJ C) 2ong D) LINE1 3、下列符号中用来表示C语言中的回车换行的是()。 A) \r B) \n C) \b D) \t 4、如有如下定义:int a=1,则语句printf(“%d,%d”, a, ++a);的运行结果为()。 A) 1, 1 B) 1, 2 C) 2, 2 D) 2, 1 5、已知ch为字符型变量,下面表达式中正确的是()。 A) ch=’\xff ’B) ch=’\ff ’C) ch=’ ff ’D) ch=” ff ” 6、以下能正确定义一维数组的是()。 A) int a[5]={0,1,2,3,4,5}; B) int a[5]=”012345”; C) char a[ ]=”012345”; D) char a[5]={0,1,2,3,4,5}; 7、以下语句中能正确定义变量并赋初值的是()。 A) char c=65; B) float f=f+1.1; C) double x=12.3e3.6; D) int m=n=2.0; 8、在执行下列程序时输入:1357924,则程序的运行结果为()。 main( ) { int x, y; scanf(“%2d%2d”,&x,&y); printf(“%2d”,x*y); } A) 13 B) 1357 C) 74 D) 741 9、执行下列程序段后输出的结果是()。 x = 9; while (x > 7)
《C语言程序设计》模拟试题五 一、填空题(40分) 1.计算机软件分为和;C语言适合编 写 . 2.十进制数35=( ) 2 =( ) 8 =( ) 16 3.已知一个数[X]补=11111001,求[X] 原 = 及 X= . 4.设x=2.5,a=7,y=4.7.求下列算术表达式的值. x+a%3*(int)(x+y)%2/3= . 5.将算式|3-e x ln(1+Y)|写成C语言表达 式. 6.设a=5,b=9.则printf(“a=%d,b=%4d”,a,b)输出为: . 7.用C语句写出累加器、累乘 器、计数器. 8.上机操作时,CTRL+F9键的功能是 ,F2键的功能 是ALT+F5键的功能是 . 9.下列程序段对应的数学表达式 是 int t,n,s=0; scanf(“%d”,&n); for(i=1;i<=n;i++) { t=1; for(j=1;j<=i;j++) t=t*j; s=s+t;} 10.以下程序用“顺序查找法”查找数组a中是否存在某一关键字. 请填空. main() {int a[10]={25,57,48,38,12,92,88,48,16,25}; int i,x; scanf(“%d”,&X); for(i=0;i<10;i++) if (x==a[i]) {printf(“Found!The index:%d\n”a[i]);(1) ;} if (2) printf(“Can not found!”); }
二、单选题(15分) 1.一个C程序的执行是从 . A.本程序的main()函数开始,到main函数结束. B.本程序文件的第一个函数开始,到本程序文件的最后一个函数结束. C.本程序的main()函数开始,到本程序文件的最后一个函数结束. D.本程序文件的第一个函数开始,到本程序main函数结束. 2.根据下面的程序及数据的输入和输出形式,程序中输入语句的正确形式 为 . main() { int a,b,c; 输入语句; printf(“%c%c%c”,a,b,c); } 输入形式:A B C 输出形式:ABC A.scanf(“%c%c%c”,&a,&b,&c); B.scanf(“%c,%c,%c”,&a,&b,&c); C.scanf(“%c %c %c”,&a,&b,&c); D.scanf(“%c%c”,&a,&b); 3.给出下列程序的运行结果 . main() {int i,j,k,x=0; for(i=2;i<=5;i++) for(j=7;j>=3;j-=2) for(k=4;k<=11;k+=4) x++; printf(“x=%d”,x);} A.x=64 B. x=36 C.x=60 D. x=24 4.若x,i,j和k都是int型变量,则表达式计算下面表达式后,x的值 为 . x=(i=4,j=16,k=32) A. 4 B. 16 C.32 D.52 5.以下不正确if语句形式是 . A.if ( x>y && x!=y ); B.if ( x = = y ) x + = y; C. if ( x != y ) scanf(“%d”,&x) else scanf(“%d”,&y);
第十七套 设a=12,且a定义为整型变量。执行语句a+=a-=a*=a;后a的值为()。 A、0 B、144 C、132 D、12 【参考答案】错误 A 【学生答案】 [未答此题] 设变量定义为"int a, b;",执行下列语句时,输入( ),则a和b的值都是10. scanf("a=%d, b=%d",&a, &b); A、a=10, b=10 B、a=10 b=10 C、10, 10 D、10 10 【参考答案】错误 A 【学生答案】 [未答此题] main() {int x=1,a=0,b=0; switch (x) { case 0: b++; case 1: a++; case 2: a++;b++; } printf("a=%d,b=%d",a,b); }该程序的输出结果是( ) A、a=1,b=1 B、a=1,b=0 C、a=2,b=2 D、a=2,b=1 【参考答案】错误 D 【学生答案】 [未答此题] 执行下列语句后的输出为()。
int j=-1; if(j<=1) printf("****\n"); else printf("%%%%\n"); A、%%%% B、**** C、有错,执行不正确 D、%%%%c 【参考答案】错误 B 【学生答案】 [未答此题] 以下正确的描述是( ). A、只能在循环体内和switch语句内使用break语句 B、continue语句的作用是终止整个循环的执行 C、从多层嵌套的外层循环中退出时,只能使用goto语句 D、在循环体内使用break和continue语句的作用相同 【参考答案】错误 A 【学生答案】 [未答此题] 设有如下程序段: int k=10; while(k==0) k--; 则下述说明中正确的是( ). A、循环体一次也不执行 B、循环体执行一次 C、死循环 D、循环体执行10次 【参考答案】错误 A 【学生答案】 [未答此题] 对以下说明语句 int a[10]={6,7,8,9,10}; 的正确理解是()。 A、将5个初值依次赋给a[6]至a[10] B、将5个初值依次赋给a[0]至a[4] C、因为数组长度与初值的个数不相同,所以此语句不正确 D、将5个初值依次赋给a[1]至a[5] 【参考答案】错误 B
第二十套 下列程序段的输出结果为()。 float x=213.82631; printf("%3d",(int)x); A、213.82 B、213.83 C、213 D、3.8 【参考答案】错误 C 【学生答案】 [未答此题] a,b为整型变量,二者均不为0,以下关系表达式中恒成立的是()。 A、a/b*b+a%b==a B、a/b*b==a C、a*b/a*b==1 D、a/b*b/a==1 【参考答案】错误 A 【学生答案】 [未答此题] int a=1,b=2,c=3; if(a>b)a=b; if(a>c)a=c; 则a的值为()。 A、3 B、2 C、1 D、不一定 【参考答案】错误 C 【学生答案】 [未答此题] C语言的switch语句中case后( )。 A、可为任何量或表达式 B、可为常量或表达式或有确定值的变量及表达式 C、只能为常量或常量表达式 D、只能为常量 【参考答案】错误 C 【学生答案】 [未答此题]
设j和k都是int类型,则下面的for循环语句( )。 for(j=0,k=0;j<=9&&k!=876;j++) scanf("%d",&k); A、最多执行9次 B、是无限循环 C、循环体一次也不执行 D、最多执行10次 【参考答案】错误 D 【学生答案】 [未答此题] 以下程序中,while循环的循环次数是( ). main() { int i=0; while(i<10) { if(i<1) continue; if(i==5) break; i++; } } A、1 B、6 C、死循环,不能确定次数 D、4 【参考答案】错误 C 【学生答案】 [未答此题] 以下不能对二维数组a进行正确初始化的语句是()。 A、int a[2][3]={{1,2},{3,4},{5,6}}; B、int a[][3]={{1,2},{0}}; C、int a[2][3]={0}; D、int a[][3]={1,2,3,4,5,6}; 【参考答案】错误 A 【学生答案】 [未答此题] 下面函数调用语句中,fun含有实参的个数为( ). fun((x,y),(x+y,z,x/y));
一、选择题:(20分,每题2分) 1.以下不正确的C语言标识符是(D)。 A. ABC B. abc C. a_bc D. ab.c 2.C程序是由B构成的。 A. 主程序与子程序 B. 主函数与若干子函数 C. 一个主函数与一个其它函数 D. 主函数与子函数 3.以下说法中正确的是:A。 A. 在C语言中,实参与其对应的形参各占独立的存储单元; B.在C语言中,实参与其对应的形参共占同一个存储单元; C.在C语言中,只有当实参与其对应的形参同名时,才共占同一个存储单 元; D. 在C语言中,形参是虚拟的,不占存储单元。 4.设n=3;则n++的结果是(B)。 A. 2 B. 3 C. 4 D. 5 5.设整型变量n=10,i=4,则赋值运算n%=i+1执行后,n的值是(A)。 A. 0 B. 1 C. 2 D. 3 6.凡是函数中未指定存储类别的局部变量其隐含的存储类别是(A)。 A. 自动(auto) B. 静态(static) C. 外部(extern) D. 寄存器(register)7.在while(x)语句中的x与下面条件表达式等价的是:D。 A. x= =0 B. x= =1 C. x!=1 D. x!=0 8.若有以下说明和语句: struct worker { int no; char *name; }work, *p=&work; 则以下引用方法不正确的是(D)。 A. work.no B. (*p).no C. p->no D. work->no
9.以下对二维数组进行正确初始化的是(B)。 A.int a[2][3]={{1,2},{3,4},{5,6}}; B.int a[][3]={1,2,3,4,5,6}; C.int a[2][]={1,2,3,4,5,6}; D.int a[2][]={{1,2},{3,4}}; 10.二维数组a有m列,则在a[i][j]之前的元素个数为:B。 A)j*m+i B)i*m+j C)i*m+j-1 D) i*m+j+1 二、给出下列程序的运行结果:(20分,前四题每题3分,后两题每题4分) 1.#include
《C语言程序设计》模拟试卷A (闭卷考试) 一、选择题(每题 分,共 分) 、以下不正确的 语言标识符是 。 、设有说明: 则表达式 值的数据类型为: 。 、根据下述定义,可以输出字符 的语句是 。
、以下说法中正确的是: 。 语言程序总是从第一个定义的函数开始执行 在 语言程序中,要调用的函数必须放在 函数中定义 语言程序总是从 函数开始执行 语言程序中的 函数必须放在程序的开始部分 、在定义 之后,对 的引用正确的是 。 、以下不能正确赋值的是 。 、设 和 都是 类型,则 循环语句 。 最多执行 次 最多执行 次 是无限循环 循环体一次也不执行 、 语言中表示“在使用 之前,先使 的值加 ”的正确方式是 。 、设有说明 其中 是 。
个指向整型变量的指针 指向 个整型变量的函数指针 一个指向具有 个整型元素的一维数组的指针 具有 个指针元素的一维指针数组,每个元素都只能指向整型量 、在下面关于指针的说法中,错误的一条是 。 变量的指针就是变量的地址 可以将一个整型量或任何其他非地址类型的数据赋给一个指针变量 一个指针变量只能指向同一类型的变量 指针变量中只能存放地址(指针) 二、读程序写结果(每题 分,共 分) 、以下程序运行后输出的结果是: 、若输入 ,以下程序的输出结果是:
、以下程序的输出结果是 、以下程序的输出结果是
、以下程序的输出结果是 、以下程序的输出结果是
; 、以下程序的输出结果是 三、程序填空(每空 分,共 分) 、将一个数组中的元素按逆序重新存放。例如原来的顺序为: 要求改为: 。 初始数组
第三套 若x,i,j,k 都是int型变量,则计算x=(i=4,j=16,k=32)后,x的值为:( ). A、52 B、16 C、4 D、32 【参考答案】错误 D 【学生答案】 [未答此题] 执行以下程序段后,输出结果和a的值是()。 int a=10; printf("%d",a++); A、11 和 10 B、10 和 11 C、11 和 11 D、10 和 10 【参考答案】错误 B 【学生答案】 [未答此题] 以下程序的输出结果是:( ) main() {int m=5; if(m++>5) printf("%d\n",m); else printf("%d\n",m--); } A、6 B、5 C、7 D、4 【参考答案】错误 A 【学生答案】 [未答此题] 执行下面程序段后,i的值是( ). int i=10; switch(i) {case 9: i+=1;
case 10: i--; case 11: i*=3; case 12: ++i; } A、28 B、10 C、9 D、27 【参考答案】错误 A 【学生答案】 [未答此题] 下面有关 for 循环的正确描述是( )。 A、for 循环是先执行循环体语句,后判断表达式 B、在 for 循环中,不能用 break 语句跳出循环体 C、for 循环的循环体语句中,可以包含多条语句,但必须用花括号括起来 D、for 循环只能用于循环次数已经确定的情况 【参考答案】错误 C 【学生答案】 [未答此题] 针对下列程序段回答问题( ). for(t=1;t<=100;t++) { scanf("%d",&x); if(x<0) continue; printf("%3d",t); } A、x>=0时什么也不输出 B、最多允许输出100个非负整数 C、printf函数永远也不执行 D、当x<0时整个循环结束 【参考答案】错误 B 【学生答案】 [未答此题] 若char a[10];已正确定义,以下语句中不能从键盘上给a数组的 所有元素输入值的语句是()。 A、for(i=0;i<10;i++)a[i]=getchar(); B、scanf("%s",a); C、gets(a);
安徽农业大学经济技术学院 《C语言程序设计》模拟试卷(A) 所有答案写在答题卡上,否则不得分 一、单项选择题(每题1分,共30分) 1.以下选项中叙述正确的是___C_____。 A)C语言程序总是从第一个定义的函数开执行 B)在C语言程序中,被调用的函数必须在main( )函数中声明 C)C语言程序总是从main()函数开始执行 D)C语言程序中的main()函数必须放在程序的开始部分 2.C语言程序的三种基本结构是 A 结构。 A)循环、选择、顺序 B)递归、转移、嵌套 C)for while do-while D)if break continue 3以下选项中不属于C语言的基本数据类型的是__D______。 A)int B)double C)char D)bool 4.以下选项中正确的C语言标识符是_B_______。 A)2b B)x_1 C)a@b D) h#3 5.有以下程序段:int m=0,n=0;char c=’a’; scanf(“%d%c%d”,&m,&c,&n); printf(“%d,%c,%d\n”,m,c,n); 若从键盘上输入98A56(回车)输出结果是____B____。 A)98,A,56 B)98,a,56 C)98,a,0 D)98,A,6 6.以下选项中,和语句k=n++;等价的是__A______。 A)k=n,n=n+1; B)n=n+1,k=n; C)k=++n; D)k=n+1; 7.已知:int i=3,j=2;,则执行语句j*=i+2;printf("%d",j);后,输出结果是____B____。 A)8 B)10 C)12 D)14 8.已知:int a=2,b=3,c;,执行语句c=(a=2,b=2),a+b;后,c的值是____A____。 A)2 B)3 C)4 D)5 9.已知:int x,y;float z;,若要给变量x,y,z输入数据,以下正确的输入语句是__C______。 A)scanf("%d,%d,%f",x,y,z); B)scanf("%d,%d,%f\n",&x,&y,&z); C)scanf("%d,%d,%f",&x,&y,&z); D)scanf("%2d,%2d,%3.2f",&x,&y,&z); 10.设有int m=9,n; 则表达式( B )不能使n的值为1。 A.n=m%2 B.n=m/10 C.n=m-1<10?1:2 D.n= m %8 11.一个C程序中要调用sqrt()函数时,应在程序中包含的头文件是_B_______。 A)stdio.h B)math.h C)string.h D)stdlib.h 12.已知:char c='a';,则执行语句printf("%c",c-32);后输出结果是____A____。 A)A B)65 C)97 D)出错 13.能正确表示逻辑关系“a≥5或a≤-1”的C语言表达式是__D______。 A)a>=5|a<=-1 B) a≥5||a≤1
1. 以下的不是C语言标识符是(C)。 A)abc1_B)_abc1C)5BC1_D)Abc1 2. 结构化程序设计的基本结构不包括(A) A)从上到下的结构B)选择结构C)循环结构D)顺序结构 3. C程序的基本单位是(A)。 A)函数B)过程C)语句D)子程序 4. 以下选项中(C)是的C语言赋值语句。 A)x=3,y=5B)a=b=6C)i--;D)y=int(x); 5. 设有如下定义:int a=1,b=2,c=3,d=4,m=2,n=2;则执行表达式:(m=a>b)&&(n=c>d)后,n的值为(B)。 A)1B)2C)3D)0 6. 设整型变量x的值为5,y的值为2,则值为1的表达式是(D)。 A)!(y==x/2)B)Y!=x%3C)X>0&&y<0D)X!=y||x>=y 7. 假设整型变量a为2,使b的值为0的表达式是(C)。 A)b=a/2B)b=6-(--a)C)b=a%2D)b=a>3?0:1 8. 设int x=3,y=4,z=5;则下面表达式中值为0的是(D)。 A)x&&y B)x<=y C)x||y+z&&y-z D)!((x
模拟试题二 一、选择题(本大题30分,每小题2分) 1.C语言中不能用来表示整常数的进制是。 A)十进制B)十六进制C)八进制D)二进制 2.C语言规定标识符由等字符组成。 A)字母数字下划线B)中划线字母数字 C)字母数字逗号D)字母下划线中划线 3.若有如下定义:int a=2,b=3; float x=3.5,y=2.5; 则表达式: (float)(a+b)/2+(int)x%(int)y的值是。 A)2.500000 B)3.500000 C)4.500000 D)5.000000 4.以下表达式: 2+?a?+i*f, 其中i为整型变量,f为float型变量,则表达式的最终数据类型为。 A)int B)float C)char D)double 5.有如下语句: printf(“%s,%5.3s\n”,“COMPUTER”,“COMPUTER”); 执行语句后的最终结果为。 A)COMPUTER ,CMP . B)COMPUTER, CMP. C)COMPU, CMP. D)COMPU, CMP . 6.以下if语句中语法错误的是。 A)if (a>b)printf(“%f”,a); B)if(a>b)printf(“%f”,a); else printf(“%f”,b); C)if(a>b)printf(“%f”,a) D)if(a>b)printf(“%f”,b); else printf(“%f”,b); else printf(“%f”,a); 7.能表示整数x符合下面两个条件的语句是。 (1)“能被4整除,但不能被100整除”.(2)能被4整除,又能被400整除. A)(x%4==0&&x%100!=0)||x%400==0 B)(x%4==0||x%100!=0)&&x%400==0 C)(x%4==0&&x%400!=0)||x%100==0 D)(x%100==0||x%4!=0)&&x%400==0 8.循环语句中的for语句,其一般形式如下: for(表达式1;表达式2;表达式3) 语句 其中表示循环条件的是。 A)表达式1 B)表达式2 C)表达式3 D)语句 9.以数组作为函数的参数时传递的数组的首地址,那么实参数组与形参数组之间的数据传递方式为。 A)地址传递B)单向值传递 C)双向值传递D)随机传递 10.将字符串str2连接到字符串str1中应使用。 A)strcpy(str1,str2) B)strcat(str1,str2) C)strcmp(str1,str2) D)strcat(str2,str1) 11.若有以下定义: int a[10],*p=a; 则*(p+3)表示的是。 A)元素a[3]的地址B)元素a[3]的值 C)元素a[4]的地址D)元素a[4]的值 12.若有如下语句: int *p1,*p2; 则其中int所指的是。 A)p1的类型B)*p1和*p2的类型 C)p2的类型D)p1和p2所能指向变量的类型
《C语言程序设计》模拟试卷A 一、单项选择题(每题2分,共20分) 1、下列有关C语言的叙述中错误的是(D)。 A) C语句必须以分号结束 B) 任何一个C程序中有且只有一个主函数 C) 复合语句在语法上可被看作一条语句 D) C程序中对数据的任何操作都可由运算符实现 2、以下不能定义为用户标识符的是(C)。 A) MAIN B) _HJ C) 2ong D) LINE1 3、以下能正确定义一维数组的是(C)。 A) int a[5]={0,1,2,3,4,5}; B) int a[5]=”012345”; C) char a[ ]=”012345”;D) char a[5]={0,1,2,3,4,5}; 4、执行下列程序段后输出的结果是(C)。 x = 9; while (x > 7) { printf(“*”); x- -; } A) **** B) *** C) ** D) * 5、设char str1[10] = “ABCDE”, str2[10] = “xyz”; 则执行语句 printf(“%d”, strlen(strcpy(str1, str2))); 后的输出结果是(D)。解析: strcpy(str1,str2); 后,str1[] 里是"XYZ", Z 后面有字符串结束符 strcpy(str1,str2); 执行后,函数返回的是str1, 因为str1[] 里是新值"XYZ", 而 strlen(strcpy(str1,str2)) 就是strlen(str1的新值),所以得3。 strlen 统计到字符串结束符以前,即,不计入字符串结束符。 A) 9 B) 8 C) 5 D) 3 6、若用数组名作为函数调用的实参,则传递给形参的是(A)。