一、单选题:(每题1.5分,共60分)
1、C程序是( )
A.顺序执行
B.从Main函数开始
C.从函数体开始
D.任意语句
答案:B
2、以下说法中正确的是( )。
A.C语言程序中是从第一定义的函数开始执行
B.在C语言程序中,要调用的函数必须在main()函数中定义
C.C语言程序总是从main()函数开始执行
D.C语言程序中的main()函数必须放在程序的开始部分
答案:C
3、算法的表示方法有________。
A.自然语言,传统流程图,N-S流程图,伪代码,计算机语言
B.高级语言,汇编语言,机器语言
C.C语言,QBASIC语言,InterDev
D.图形图像法,描述法,编程法
E.计算机语言
答案:A
4、以下选项中,非法的字符常量是( )
A.'\t'
B.'\17'
C."n"
D.'\xaa'
答案:C
5、以下所列的C语言常量中,错误的是
A.0xFF
B.1.2e0.5
C.2L
D.'\72'
答案:B
6、下列变量名合法的是( )
A.#1
B.$567
C.a-b
D.m_number
答案:D
7、下面四个选项中,均是不正确的八进制数或十六进制数的选项是
A.016 0x8f 018
B.0abc 017 0xa
C.010 -0x11 0x16
D.0a12 7ff -123
答案:D
8、sizeof(float)是
A.一个双精度型表达式
B.一个整型表达式
C.一种函数调用
D.一个不合法的表达式
答案:B
9、C语言中,double类型数据占( )个字节,char类型数据占( )个字节
A.1
B.2
C.4
D.8和1
答案:D
10、当c的值不为0时,在下列选项中能正确将c的值赋给变量a、b的是
A.c=b=a;
B.(a=c) ‖(b=c) ;
C.(a=c) &&(b=c);
D.a=c=b;
答案:C
11、若已定义x和y为double型,则表达式:x=1,y=x+3/2的值是( )
A.1
B.2
C.2.0
D.2.5
答案:C
12、执行语句x=(a=3,b=a--)后x,a,b的值为;
A.3 3 2
B.3 2 2
C.3 2 3
D.2 3 2
答案:C
13、语句printf("a\bre\'hi\'y\\\bou\n");的输出结果是
A.a\bre\'hi\'y\\\bou
B.a\bre\'hi\'y\bou
C.re'hi'you
D.abre'hi'y\bou
答案:C
14、在下列运算符中,优先级别最高的是
A.<=
B.=
C.%
D.&&
答案:C
15、若执行下面的程序时从键盘上输入3和4,则输出是
main()
{
int a,b,s;
a=3,b=4;
scanf("%d%d",&a,&b);
s=a+b;
printf("%d\n",s--);
printf("%d\n,--s);
}
A.7,7
B.7,5
C.6,7
D.7,6
答案:B
16、两次运行下面的程序,如果从键盘上分别输入6和4,则输出结果是( )。
#include
main()
{ int x;
seanf(”%d”,&x);
if(x++>5)printf(”%d”,x);
else printf(”%d\n”,x--);}
A.7和5
B.6和3
C.7和4
D.6和4
答案:A
17、设a、b、C、d、m、n均为int型变量,且a=5、b=6、c=7、d=8、m=2、n=2,则逻辑表达式(m=a > b)&&(n=c > d)运算后,n的值为:
A.0
B.1
C.2
D.3
答案:C
18、逻辑运算符两侧运算对象的数据类型
A.只能是0或1
B.只能是0或非0正数
C.只能是整型或字符型数据
D.可以是任何类型的数据
答案:D
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)
答案:A
20、判断字符型变量x是否是大写字母的正确的表达式______.
A.'A'<=x<='Z'
B.(x>=A)&&(x<=Z)
C.('A'<=x)&&('Z'=>x)
D.(x>='A')&&(x<='Z')
答案:D
21、有如下程序
main0
{ int x=1,a=0,b=0;
switch(x){
case 0: b++;
case 1: a++
case 2: a++;b++
}
printf("a=%d,b=%d\n",a,b);
}
该程序的输出结果是
A.a=2,b=1
B.a=1,b=1
C.a=1,b=0
D.a=2,b=2
答案:A
22、已知int x=10,y=20,z=30;以下语句执行后x,y,z的值是if(x>y)
z=x;x=y;y=z;
A.x=10,y=20,z=30
B.x=20,y=30,z=30
C.x=20,y=30,z=10
D.x=20,y=30,z=20
答案:B
23、以下程序的输出结果是
main()
{int a=100,x=10,y=20,ok1=5,ok2=0;
if(x < y)
if(y!=10)
if(!ok1)
a=1;
else
if(ok2) a=10;
a=-1;
printf("%d\n",a);
}
A.1
B.0
C.-1
D.值不确定
答案:C
24、i、j已定义为int类型,则以下程序段中内循环体的总的执行次数是
for (i=5; i; i--)
for(j=0; j < 4; j++){…}
A.20
B.24
C.25
D.30
答案:A
25、以下程序的输出结果是
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
答案:D
26、执行语句: for (i=1;i++ < 4;);后,变量i的值是______.
A.3
B.4
C.5
D.不定
答案:C
27、以下程序的输出结果是
{ 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
28、有以下程序段
int k=0
while(k=1)k++;
while 循环执行的次数是
A.无限次
B.有语法错,不能执行
C.一次也不执行
D.执行1次
答案:A
29、在while(x)语句中的x与下面条件表达式等价的是( )。
A.x==0
B.x==1
C.x!=0
D.x!=1
答案:C
30、执行下面的程序段后,变量k中的值为
s[0]=k; k=s[1]*10;
A.不定值
B.33
C.30
D.10
答案:A
31、若有说明:int a[10];则对a数组元素的正确引用是
A.a[10]
B.a[3,5]
C.a(5)
D.a[10-10]
答案:D
32、设有数组定义:char array[]=”China”;,则数组array所占的空间为( )。
A.4个字节
B.5个字节
C.6个字节
D.7个字节
答案:C
33、从下列选项中选择不会引起二义性的宏定义是( )。
A)#define POWER(X)X*X B)#define POWER(X)(X)*(X)
C)#define POWER(X)(X*X) D)#define POWER(X)((X)*(X))
A.A
B.B
C.C
D.D
答案:D
34、在说明语句:int *f();中,标识符f代表的是
A.一个用于指向整型数据的指针变量
B.一个用于指向一维数组的行指针
C.一个用于指向函数的指针变量
D.一个返回值为指针型的函数名
答案:D
35、若有说明:int i, j=2,*p=&i;,则能完成i=j赋值功能的语句是
A.i=*p;
B.p*=*&j;
C.i=&j;
D.i=**p;
答案:D
36、下面程序的输出是
main()
{ char x=040;
printf("%d\n",x=x<<1);
}
A.100
B.160
C.120
D.64
答案:D
37、C语言中____函数的递归调用。
A.允许
B.不允许
C.由用户自己而定
D.不确定
答案:A
38、关于建立函数的目的,以下正确的说法是
A.提高程序的执行效率
B.提高程序的可读性
C.减少程序的篇幅
D.减少程序文件所占内存
答案:B
39、有如下函数调用语句
func(rec1,rec2+rec3,(rec4,rec5));
该函数调用语句中,含有的实参个数是
A.3
B.4
C.5
D.有语法错
答案:A
40、以下函数
fff(float x)
{
printf(”%d\n”,x*x);
}
的类型是( )。
A.与参数x的类型相同
B.void类型
C.int类型
D.无法确定
答案:C
填空题:(每题1.5分,共24分)
1、在C语言中(以16位PC机为例),一个float型数据在内存中所占的字节数为_____;一个double型数据在内存中所占的字节数为_________
答案:4,8
2、设有以下变量定义,并已赋确定的值
char w; int x; float y; double z;
则表达式:w*x+z-y所求得的数据类型为__________ 。
答案:double
3、设x和y均为int型变量,且x=1,y=2,则以下表达式:0+x/y的值为___ 。答案:0
4、若a是int型变量,则计算表达式后a的值为_______
a=25/3%3
答案:2
5、语句:x++;?++x; x=x+1;?x=l+x; ,执行后都使变量x中的值增1,请写出一条同一功能的赋值语句(不得与列举的相同)
答案:X+=1
6、若变量已正确定义,以下语句段的输出结果是——。
x=0;y=2;z=3;
switch(x)
{
case O:switch(y==2)
{
case 1:printf(”*”);break;
case 2:printf(”%”);break;
}
case 1:switch(z)
{
case 1:printf(”$”);
case 2 t printf(”$”);break;
d
答案:*#
7、设x,y、z均为int型变量,请写出描述“x或Y中至少有一个小于Z”的表达式——。
答案:x
8、已知char ch;则判断ch是英文字符的逻辑表达式是_______________
答案:(ch<='z'&&ch>='a')||(ch<='Z'&&ch>='A')
9、表示条件:10 < x < 100或x < 0的C语言表达式是________。
答案:(X > 10&&X < 100)|| X < 0
10、请写出以下程序的输出结果——。
#include
main()
{
int a=100:
if(a>100)
printf(”%d\n”,a>100);
else
pIintf(”%d\n”,a<=100);}
答案:! && ||
11、下面程序的功能是:输出100以内能被3整除且个位数为6的所有整数,请填空。
#include < stdio.h >
main()
{ int i, j;
for(i=0; ______________; i++)
{ j=i*10+6;
if( ________ ) continue;
printf("%d",j);
}
}
答案:i<10,j%3!=0
12、下面程序的功能是:将字符数组a中下标值为偶数的元素从小到大排列,其它元素不变。请填空。
#include < stdio.h >
#include < string.h >
main()
{ char a[]="clanguage",t;
int i, j, k;
k=strlen(a);
for(i=0; i < =k-2; i+=2)
for(j=i+2; j < =k; _______________ )
if( _______________
答案:j+=2
a[i]>a[j]
13、读入一个1到9的数a,求s=a+aa+aaa+…+aa…a(共20项)。请对下述程
序填空,其中temp保存当前处理项aa…a。(每个空分别以序号标注,如:(1)____)
#include < stdio.h >
main()
{
int I;
long a,s,temp;
s=temp=0;
printf("Please enter a number(1-9)");
scanf((1)____);
s=a;
for (I=1;(2)____;(3)____)
答案:"%lf",&a , i<20, i++,a+a*10 , temp
14、下面程序中的数组a包括10个整数元素,从a中第二个元素起,分别将后项减前项之差存人数组b,并按每行3个元素
输出数组b。请填空。
#include
main()
{int a[10],b[10],i;
for(i=0;_________;i++)
scanf(”%d”,&a[i]);
for(i=1;__________;i++)
b[i]=a[i]-a[i-1];
for(i=1;i<10;i++)
{printf(”%3d”,b
答案:i<10 i<10 i%3==0
15、下面程序的功能是:将字符数组a中下标值为偶数的元素从小到大排列,其他元素不变,请填空。
#include
#include
main()
{char a[]=”clanguage”,t;
int i,j,k;
k=strlen(a);
for(i=0;i<=k-2;i+=2)
for(j=i+2;j
if(___________)
{t=a[i];a[i]=a
答案:i+=2
a[ij>a[j]
16、阅读以下程序并填空,该程序是求阶乘的累加和。
S=0!+1!+2!+…+n!
#include
long f(int n)
{
int i:
long s;
s=________;
for(i=1;i<=n;i++)
s=________;
return s;
}
main()
long s;
int k,n;
scanf(”%
答案:1 s*i 0 f(k)
程序设计题:(请在以下3题中任选2题作答,若3道全部解答,以前2道为准,每题8分,共16分)1、编程序求出100到200之间同时满足除3余2和除5余3条件的数的个数。答案:main()
{
int i,num=0;
for(i=100;i < =200;i++)
{
if((i%3==2)&&(i%5==3))
num=num+1;
}
printf("\n%d",num);
}
本题答案:6
2、回文数是指正读和反读都一样的正整数。例如3773等都是回文数。求出[1000,9999]以内的回文数是6的倍数的最大回文数。
答案:
main()
{
int a1,b1,a2,b2,i,hwm;
for(i=1000;i < =9999;i++)
{
a1=i/1000;
b1=i/100-a1*10;
b2=i/10-a1*100-b1*10;
a2=i%10;
if((a1==a2)&&(b1==b2)&&(i%6==0))
hwm=i;
}
printf("所求的最大回文数为%d",hwm);
}
参考答案:
3、编写程序,统计1000~9999之间的所有满足以下条件的四位数的个数。该数是一个完全平方数,第1、2位数字之和为12,第3、4位数字之积为24。
答案:#include< math.h >
main()
{ int n= 0;
int a,b,c,d,e,m;
for(m=32;m < =99;m++)
e=m*m;
a=e/1000; /*a为千位*/
b=(e%1000)/100; /*b为百位*/ c=((e%1000)%100)/10; /*
以下叙述中正确的是(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)
若x,i,j,k 都是int型变量,则计算x=(i=4,j=16,k=i+32)后,x的值为:(D). 整型变量x=1,y=3,经下列计算后,x的值不等于6的是(D)。 =y*4/2 =9-(--y)-(--y) =(x=1+2,x*2) =y<26:5 以下程序的输出结果为(A)。 main() {int i=010,j=10; printf("%d,%d\n",++i,j--); } ,10 ,9 ,9 ,10 如下说法不正确的是(D). A.若b为假a为真,则 a||b为真 B.若b为真a为假,则 a||b为真 C.若b为真a为真,则 b&&!a为假 D.若b为假,则!b+1为假 下列(C)表达式的值为真,其中a=5;b=8;c=10;d=0 A.(a*2-c)||d *2>8+2
下面各语句中,能正确进行赋字符串操作的语句是(B). s1[5][ ]={"ABCDE"}; s2[6]={'A','B','C','D','E'}; st[ ][ ]={"ABCDE"}; s[5]={'A','B','C','D','E'}; 下述对C语言字符数组的描述中,错误的是(C). A.不可以用关系运算符对字符数组中的字符串进行比较. B.字符数组中的字符串可以整体输入、输出. C.可以通过赋值运算符"="对字符数组整体赋值. D.字符数组中可以存放字符串. 若有说明 int a[3][4];则对a数组元素的正确引用是(C)。[1,3] [2][4] [1+1][0] (2)(1) 程序运行结束后,屏幕上输出值为(B). static int x=10; f( ) { x++; } main( ) { int x=3; f( ); x- -; printf("%d",x); } C语言规定,函数返回值的类型是由(A)。 A.在定义该函数时所指定的函数类型所决定 语句中的表达式类型所决定 C.调用该函数时系统临时决定 D.调用该函数时的主调函数类型所决定 若调用一个函数,且此函数中没有return语句,则正确的说法是:该函数(B)。 A.没有返回值 B.返回一个不确定的值 C.返回若干个系统默认值 D.能返回一个用户所希望的值
《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);
选择题1.下列字符序列中,不可用作C语言标识符的是()。 A.abc123 B.C._123_ D._ok 2.请选出可用作C语言用户标识符的一组标识符()。 A.void B.a3_b3 C.For D.2a define _123 -abc DO WORD IF Case sizeof 3.不属于C语言关键字的是()。 A.int B.break C.while D.character 4.以下不能定义为用户标示符的是()。 A.scanf B.Void C._3com_ D.int 5.C语言程序的基本单位是()。 A.程序行B.语句C.函数D.字符 6.以下说法中正确的是()。 A.C语言程序总是从第一个定义的函数开始执行 B.在C语言程序中,要调用的函数必须在main( )函数中定义 C.C语言程序总是从main( )函数开始执行 D.C语言程序中的main( )函数必须放在程序的开始部分 7.以下选项中,合法的用户标识符是()。 A.long B._2abc C.3dmax D. 8.已知大写字母A的ASCII码值是65,小写字母a的ASCII码是97,则用八进制表示 的字符常量’\101’是()。 A.字符A B.字符a C.字符c D.非法的常量 9.以下选项中,正确的字符常量是()。 A.”F”B.’\\’’C.’W’D.’’ 10.下列变量定义中合法的是 A.short _a=; B.double b=1+; C.long do=0xfdaL; D.float 2_and=1-e-3; 11.为了避免嵌套的if-else语句的二义性,C语言规定else总是与()组成配对关系。 A.缩排位置相同的if B.在其之前未配对的if C.在其之前未配对的最近的if D.同一行上的if 12.下列运算符中优先级最高的是()。 A.< B.&& C.+ D.!= 13.判断char型变量s是否为小写字母的正确表达式是()。 A.’a’ <= s<=’z’B.(s>=’a’) & (s<=’z’) C.(s>=’a’) && (s<=’z’) D.(’a’<=s) and (’z’>=s)
注意: 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行的图
第四套期末考试题 第一部分选择题 单项选择题(本大题共20小题,每小题1分,共20分)在每小题列出的四个选项中只有一个选项是符合题目要求的,请将正确选项前的字母填在题后的括内 1. 在计算机上可以直接运行的程序是_____________。 A. 高级语言程序 B.汇编语言程序 C.机器语言程序 D. C语言程序 2. 不属于C语言的是__________。 A. for B. goto C. if D. loop 3. 正确的C语言自定义标识符是__________。 A. num(10) B. file_bak C. continue D. class+2 4. 字符串”m\x43\\\np\102q”的长度是__________。 A. 7 B. 9 C. 15 D. 16 5. 设 int x=8, y, z; 执行y=z=x++; x=y==z后,变量x的值是__________。 A. 0 B. 1 C. 8 D. 9 6. 对于输入语句scanf(“%f,%f”, &a, &b); 要使变量a、b的值分别为1.78和2.48,则正确的输入是__________。 A. 1.78, 2.48 后跟回车 B. 1.78 2.48 后跟回车 C. 1.782.48 后跟回车 D. 1.78;2.48 后跟回车 7. 设int a=8, b=7, c=6, x=1; 执行语句 if(a>6) if(b>7) if(c>8) x=2; else x=3; 后x的值是__________。 A. 0 B. 1 C. 2 D. 3 8. 执行下列程序段 x=9; while(x>7) { printf(“*”); x--; } 后输出的结果是__________。 A. **** B. *** C. ** D. * 9. 定义一个具有10个元素的整数型数组,应当使用语句__________。 A. int a[10]; B. int a[2,5]; C. int a[]; D. int *a[10]; 10. 设char str1[10]=”ABCDE”, str2[10]=”xyz”; 则执行语句printf(“%d”, strlen(strcpy(str1, str2))); 后的输出结果是__________。 A. 9 B. 8 C. 5 D. 3 11. 设int x[]={1,3,5,7,9,11,13}, *p=x; 则不能正确引用数组元素的表达式是__________。 A. *(p--) B. *(--p) C. *(p++) D. *(++p) 12. 设int x[]={1,2,3,4}, y, *p=&x[1]; 则执行语句 y=(*--p)++; 后变量y的值为__________。 A. 1 B. 2 C. 3 D.4 13. 函数调用时,下列说法中不正确的是__________。 A. 若用值传递方式,则形式参数不予分配内存 B. 实际参数和形式参数可以同名 C. 主调函数和被调用函数可以不在同一个文件中
《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、执行下列程序段后输出的结果是()。
《C语言程序设计》期中考试试卷 课程编号:03402513试卷类型:A卷考试形式:笔试考试日期: 注意事项:1.请将试卷最后一页的答题纸撕下,将答案填写在其中;2.交卷时请确认答题纸是否按要求写好姓名等信息并与试题一起上交;3.不准携带任何书籍、资料、纸张等。4.草稿纸用试卷的背面。 一、单项选择题(1空1分,共20分) 1、C语言程序的基本结构是(【1】) 。 【1】 A) 函数 B) 语句 C) 字符 D) 程序行 2、一个C程序的执行是(【2】) 。 【2】A) 从本程序的主函数开始,到本程序的主函数结束 B)从本程序的第一个函数开始,到本程序的最后一个函数结束 C) 从本程序的主函数开始,到本程序的最后一个函数结束 D)从本程序的第一个函数开始,到本程序的主函数结束 3、下列四个叙述中,错误的是(【3】) 。 【3】 A) 一个C源程序必须有且只能有一个主函数 B) 一个C源程序可以含一个或多个子函数 C) 在C源程序中注释说明必须位于语句之后 D) C源程序的基本结构是函数 4、下面不属于C语言保留字的是(【4】) 。 【4】 A) short B) ELSE C) extern D) for 5、下列四个叙述中,正确的是(【5】) 。 【5】 A) 库函数也是C语言本身的组成部分 B) C语言中的输入输出操作是由相应语句完成的 C) 库函数是C编译系统提供的功能函数 D) 标题文件(头文件)可以在程序的函数内部调用 6、下列四组数据类型中,C语言允许的一组是(【6】)。 【6】 A) 整型、实型、逻辑型 B) 整型、实型、字符型 C) 整型、双精度型、布尔型 D) 整型、实型、复型 7、在C语言中不同数据类型的的长度是(【7】)。 【7】 A) 固定的 B) 由用户自己定义的 C) 任意的 D) 与机器字长有关
第二套试题 一、判断题 第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程序设计(第四版)期末考试题 本卷共有4道大题: 一、单项选择题(20道小题,共20分) 1、以下对C语言函数的有关描述中,正确的是( )(1分) A、在C中,调用函数时,只能把实参的值传送给形参,形参的值不能传送给实参 B、C函数既可以嵌套定义又可以递归调用 C、函数必须有返回值,否则不能使用函数 D、C程序中有关调用关系的所有函数必须放在同一个源程序文件中 2、strcpy库函数用于复制一个字符串。若有以下定义:char *str1="copy",str2[10],*str3="hijklmn";char *str4,*str5="abcd";则对strcpy库函数的错误调用是( )(1分) A、strcpy(str2,str1) B、strcpy(str3,str1) C、strcpy(str4,str1) D、strcpy(str5,str1) 3、设有以下语句:char str[4][12]={"aaa","bbb","ccc","ddd"};char *strp[4]; int i;for(i=0;i<4;i++) strp[i]=str[i]; 若0<=k<4,下列选项中对字符串的非法引用是( )(1分) A、strp B、str[k] C、strp[k] D、*strp 4、以下各选项企图说明一种新的类型名,其中正确的是( )(1分) A、typedef v1 int; B、typedef v2=int; C、typedef v1 int v3; D、typedef v4: int; 5、若以下定义和语句:int a[]={1,2,3,4,5,6,7,8,9,0}; int *p,i;p=a;0C语言程序设计模拟试题A附答案
《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)。
6.以下程序的输出结果为(D)。 main( ) { char c; int i; for(i=65;i<68;i++) { c=i+32; switch(c) { case ‘a’:printf("%c,",c);break; case ‘b’:case ‘e’:printf("ok,"); default: printf("end"); } } } A a,ok,end B a,ok,endend C a,ok,end,end D a,ok,ok 9.以下程序的输出结果为(B)。 #define A 3 #define B(a) (A+1)*a main() { int x; x=3*A+B(7); printf("x=%d\n",x); } A x=93 B x=37 C x=60 D x=90 三写出下列程序的运行结果(10分,每小题2分) 1.main( ) { char c1=‘A’,c2=‘\144’,c3=‘\x44’,c=0xf5,x=13,a; int i=0122,j=0xa4; printf(“c1=%c,c4=%c\tc5=%c\n”,c1,c2,c3); printf(“%d,%d\n”,i,j); i=-34; j=20; printf(“%d,%d,%d\n”,i%j,i&j<<2,sizeof(j)); printf(“c=%d\n”,c|x); a=c^x<<2;
printf(“a=%d\n”,a); } 2.main() { int x,y=1,z=10; if(y!=0) x=5; printf(“x=%d\t”,x); x=1; if(z<0) if(y>0) x=3; else x=5; printf(“x=%d\n”,x); if(z=y<0) x=3; else if(y==0) x=5; else x=7; printf(“x=%d\t”,x); printf(“z=%d\n”,z); } 3.main( ) { char s[20]=“I like it.”,t[20]=“Are you?”,c[20]; int i=0; while(s[++i]!=‘\0’) t[i]=s[i]; t[i]=0; printf(“string s:%s\n”,s); printf(“string t:%s\n”,t); } 4.int i=5; main( ) { int i=3; { int i=10; i++; printf(“%d\n”,i);
第十七套 设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
四川师范大学计算机科学学院 2012~2013学年度第二学期期末考试 C 语言程序设计试卷 试卷A 答卷说明: 1、 本试卷共6页,答题纸3页,4个大题,35个小题,满分100 分,120分钟完卷。 2、 闭卷考试,所有的答案都必须写在答题纸上,判卷以答题纸上 答案为准。 3、 本试卷适用于2011级1、2、3班。 一、 单项选择题(在每小题的四个备选答案中,选出一个正确答案,并将正确答案的 序号填在题干的括号内。每小题1分,共20分) 1、 在C 语言中,下列标识符中合法的是( ) A). -int B). in1_3 C). A_B!D D). const 2、 不属于C 语言基本数据类型的是( ) A). int B). union C). char D). unsigned 3、 下面是对宏定义的描述。不正确的是( ) A). 宏不存在类型问题,宏名无类型,它的参数也无类型 B). 宏替换不占用运行时间 C). 宏替换只是字符串的简单替代 D). 宏替换时先检查类型,类型一致时才可以替换 4、 C 语言中,″\\xfds ″在内存中占用的字节数是( ) __________________学院__________级___________班 姓名_______________ 学号_______________ ………………………………(密)………………………………(封)………………………………(线)……………………………… 密 封 线 内 答 题 无 效
A).3 B).4C).5D).6 5、设int x;则执行printf(″%x\n″,~x^x);的结果是() A). ffffffff B). ff C).0D). 1 6、对于while语句,错误的说法是() A).用条件控制循环体的执行次数B).循环体至少要执行一次 C).循环体有可能一次也不执行D).循环体中可以包含若干条语句 7、执行下列语句后输出的结果是() int a=8,b=7,c=6; if(ac){a=c;c=b;} printf("%d,%d,%d\n",a,b,c); A).6,7,7B).6,7,8C).8,7,6D).8,7,8 8、设int a=9,b=20;则printf(″%d,%d\n″,a--,--b);的输出结果是() A).9,19B).9,20C).10,19D).10,20 9、设static char x[ ]=″12345″,y[ ]={′1′,′2′,′3′,′4′,′5′,′\0′};那么() A).x数组的长度等于y数组的长度B).x数组的长度大于y数组的长度 C).x数组的长度少于y数组的长度D).x数组与y数组的存储区域相同 10、设int i,x[3][3]={1,2,3,4,5,6,7,8,9};则下面语句的输出结果是() for(i=0;i<3;i++) printf(″%d″,x[i][2-i]); A).147B).159C).357D).369 11、执行完下列语句后,n的值是() int n; for (n=0 ; n<100 ; n=2*n+1); A).125B).126 C).127D).128 12、有以下语句:int a=6;a+=a-=a*a;printf(“%d”,a);输出结果() A).–132 B).–60 C). -24 D). 0 13、为了连接两个字符串s1与s2,应当使用() A). strcat( s1,s2 ) B). strcpy( s1, s2 ) C). strlen( s1, s2 ) D). strcmp( s1, s2 ) 14、设int a,*p;则语句p=&a;中的运算符“&”的含义是() A).位与运算B).逻辑与运算C).取指针内容D).取变量地址 15、下面输出的结果为() i nt a=13, b=64; printf(“%d\n”, !a || (b>>3) );
第二十套 下列程序段的输出结果为()。 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));
c语言程序设计教程(第2版)课后题及模拟题参考答案 习题1 1-1 填空题 1.函数 2.主函数main(),主函数main() 3.主函数main() 4.函数首部,函数体 5.{, } 6./*, */ 7.顺序结构,选择结构,循环结构 8..c, .obj, .exe 1-2 思考题 1.结构化程序设计是指:为使程序具有一个合理的结构以保证程序正确性而规定的一套如何进行程序设计的原则。其基本结构包括顺序结构、选择结构和循环结构三种。 2.算法是对具体问题求解步骤的一种描述。计算机算法的表达工具通常采用以下几种方法:(1)用自然语言表示算(2)用流程图表示算法(3)用伪代码表示算法(4)用程序设计语言表示算法 3.语言简洁、紧凑,使用方便、灵活; 支持结构化程序设计;运算符丰富;数据类型丰富;较强的编译预处理功能;C语言的可移植性好;C语言本身既有一般高级语言的优点,又有低级(汇编)语言的特点;语法限制不太严格,程序设计自由度大。 1-3 编程题 1. 试参照本章例题编写计算梯形面积的C语言程序,梯形的上底、下底和高分别用a,b,h表示,并用a=10,b=20,h=5测试所编写的程序。 #include "stdio.h" main() { float a, b, h, s; a=10; b=20; h=5; s=(a+b)*h/2; printf("s=%f\n" , s ); } 2. 编写程序显示如图1.11所示信息。 图1.11 显示信息 #include "stdio.h" main()
{ printf("******************************\n"); printf("* hello world *\n"); printf("******************************\n"); } 习题2 2-1 单选题 1~5 DBDCA 6~10 DCABA 11~12 CA 2-2 思考题 1.2.000000 2.1,0.5 3.9,2 4.6 5.100,d 6.(1)20 (2)0 (3)60 7. (1)10,6,4 (2)6,9,15 (3)3,60,83 8. 55 习题3 3-1 选择题 1-5BDABC 6-10ADCAC 11-12BB 3-2 填空题 1. 3 2.0261 3.0x10 4. 2, 1 互换a,b的值 5. 6.6 6.–003 8.7 7. 5.0,4,c=3
大一c语言期末考试题 C语言期末考试试题附答案 一选择题(7分,每小题0.5分) 1.C语言源程序的基本单位是()。 A 过程 B 函数 C 子程序 D 标识符 2.下列程序的输出结果是()。 main( ) { int a=7,b=5; printf("%d\n",b=b/a); } A 5 B 1 C 0 D不确定值 3.假设变量a,b均为整型,表达式(a=5,b=2,a>b?a++:b++,a+b)的值是()。 A 7 B 8 C 9 D 2 4.设a为int型变量,执行下列赋值语句后,a的取值分别是()。 a=125.534; a=(int)125.521%4; a=5<<2; A 125,31,1 B 125,1,20 C 125,31,20 D 125.534,2,20 5.设有如下程序段,下面描述中正确的是()。 int k=10; while(k=0) k=k-1; A 循环执行一次B循环是无限循环C循环体语句一次也不执行D循环体语句执行一次 6.以下程序的输出结果为()。 int i; void prt( ) { for(i=5;i<8;i++) printf("%c",'*'); printf("\t"); } main( ) { for(i=5;i<=8;i++) prt( ); } A *** B *** *** *** *** C *** *** D * * * 7.在C语言程序中,以下说法正确的是()。 A函数的定义可以嵌套,但函数的调用不可以嵌套 B函数的定义不可以嵌套,但函数的调用可以嵌套 C函数的定义和函数的调用都不可以嵌套 D函数的定义和函数的调用都可以嵌套 8.以下函数调用语句中含有()个实参。 func((e1,e2),(e3,e4,e5)); A 2 B 3 C 5 D 语法错误 9.以下程序的输出结果为()。 #define ADD(x) x*x main( ) { int a=4,b=6,c=7,d=ADD(a+b)*c;
第三套 若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);