搜档网
当前位置:搜档网 › C语言模拟试卷

C语言模拟试卷

C语言模拟试卷
C语言模拟试卷

试卷一

一、理论题(20分,每小题1分)

(1)【单选题】下面程序的输出结果是_________。

#include

Int fun(int x)

{ int p;

if(x==0||x==1) return 3;

p=x-fun(x-2);

return p;

}

void main()

{printf(“%d\n”,fun(9) }

A) 7

B) 9

C) 3

D) 1

参考答案:A

(2)【单选题】下面程序运行时,若从键盘上输入2.0并回车,则输出结果是_________。

#include

void main()

{ float x,y;

scanf(“%f”,&x);

if(x<0.0) y=0.0;

else if((x<10.0)&&(x!=2.0))

y=1.0/(x+2.0);

else if(x<5.0) y=1.0/x;

else y=5.0;

printf(“%.1f”,y;)

}

A) 0.5

B) 1.0

C) 0.0

D) 0.25

参考答案:A

(3)【单选题】C++源程序文件的默认扩展名为_________。

A) c++

B) cpp

C) cc

D) c

参考答案:B

(4)【单选题】下面程序的输出结果是_________。

#include

void main()

{ char *p[ ]={"mop","book","w","sp"};

int i;

for(i=3;i>=0;i--,i--) printf(“%c”,*p[i]);

}

A) sb

B) spbook

C) sp

D) swb

参考答案:A

(5)【单选题】下面定义的结构类型的长度是_________字节。

struct MyData

{ long x;

char ch;

float y;

};

A) 8

B) 9

C) 2

D) 6

参考答案:B

(6)【单选题】以下程序段中的循环体被执行的次数是_________。

for(i=4;i;i-=2)

for(j=1;j<4;j++)

{……};

A) 无限多次

B) 8

C) 6

D) 2

参考答案:C

(7)【单选题】下面程序的输出结果是_________。

#include

void main()

{ int x[ ]={2,4,6,8},i;

int *p=x;

for(i=0;i<4;i++) x[i]=*p++;

printf(“%x[2]);

}

A) 6

B) 4

C) 8

D) 2

参考答案:A

(8)【单选题】C++的字符串"\t\1026\\'"中包含_________个可见的字符。

A) 10

B) 5

C) 4

D) 6

参考答案:C

(9)【单选题】以下程序段运行时,若从键盘上输入Open the door并回车,则输出结果是_________。

#include

char fun(char *c);

char fun(char *c)

{ if(*c<='z' && *c>='a') *c-='a'-'A';

return *c;

}

void main()

{ char s[81],*p=s;

gets(s);

while(*p)

{*p=fun(p);putchar(*p);p++;}

putchar('\n');

}

A) open the door

B) OPEN THE DOOR

C) Open the door

D) oPEN THE DOOR

参考答案:B

(10)【单选题】若有以下程序段,则变量v的值是_________。

int m=1,n=2,v;

v=m/n;

A) 0

B) 1/2

C) 0.5

D) 1

参考答案:A

(11)【单选题】若m和n都是整型变量,且m=3,n=5,则以下语句输出的结果是_________。

printf(“%d“,(m+=n,n));

A) 5

B) 语句格式有错,无输出结果

C) 3

D) 8,5

参考答案:A

(12)【单选题】下面程序的输出结果是_________。

#include

#define sub(x,y) (x)*x+y

void main()

{ int a=3,b=4;

printf(“%d”,sub(a++,b++));

}

A) 6

B) 13

C) 21

D) 20

参考答案:B

(13)【单选题】下面程序的输出结果是_________。

#include

void main()

{ int num=1;

while(num<=2)

{num++;printf(“% d”,num};

}

A) 123

B) 23

C) 12

D) 1

参考答案:B

(14)【单选题】下面程序的输出结果是_________。

#include

void main()

{ int x=0,y=1,a=0,b=0;

switch(x)

{ case 0:

switch(y)

{ case 0:a++;break;

case 1:b++;break;

}

case 1:

a++;b++;break;

}

printf(“%a,%b”,a,b);

}

A) 2,1

B) a,1

C) 1,2

D) 1,0

参考答案:C

(15)【单选题】若有下面的程序片段:

int a[12]={0},*p[3],i;

for(i=0;i<3;i++) p[i]=&a[i*4];

则对数组元素的错误引用是_________。

B) p[0]

C) *(*p+0)

D) a[0]

参考答案:B

(16)【单选题】下面程序的输出结果是_________。

#include

#include

void main()

{ char *x1="abcdef",*x2="ab";

x1++;x2++;

printf(“%d”,strcmp(x1,x2));

}

A) -1

B) 不确定的值

C) 1

D) 0

参考答案:C

(17)【单选题】下面程序运行时,若从键盘上输入3.6 2.4并回车,则输出结果是_________。

#include

#include

void main()

{ float x,y,z;

scanf(“%f”,x,y);

z=x/y;

while(1)

{ if(fabs(z)>1.0){x=y;y=z;z=x/y;}

else break;

}

printf(“%.1f”,y);

}

A) 2.0

B) 1.5

C) 1.6

D) 2.4

参考答案:C

(18)【单选题】下面程序的输出结果是_________。

#include

f(int a[ ],int n)

{ int i,x;

x=1;

for(i=0;i<=n;i++) x=x*a[i];

return x;

}

{ int y,x[ ]={1,2,3,4,5};

y=f(x,3);

printf(“%d”,y);

}

A) 120

B) 6

C) 24

D) 12

参考答案:C

(19)【单选题】以下关于函数的说法中,正确的是_________。

A) 如果形参与实参类型不一致,以实参类型为准

B) 如果函数值的类型与返回值类型不一致,以函数值类型为准

C) 形参的类型说明可以放在函数体内,以实参类型为准

D) return后边的值不能为表达式

参考答案:B

(20)【单选题】有关类和对象的说法不正确的是_________。

A) 任何一个对象只能属于一个具体的类

B) 对象是类的一个实例

C) 一个类只能有一个对象

D) 类与对象的关系与数据类型和变量的关系相似

参考答案:C

二、操作题(80分)

1、【简单操作题】(注:以下文件均保存在试题盘shiti\pro\4000247文件夹中)打开proj1.cpp,将一维数组按升序排列,请在提示处填上正确的代码,要求:补充语句处只写一条语句。(题分:20分)

参考答案:

//程序功能:将一维数组按升序排列后输出

//注意:请在提示处填上正确的代码,要求:补充语句处只写一条语句

#include

void sort ( int *p,int n)

{ int i,j,temp;

for (i=0;i

//请在两条星线之间填入相应的代码,内层循环:实现每趟两两比较的次数

/**************************************************/

for(j=1;j

/***************************************************/

if(p[j-1]>p[j])

{

temp=p[j-1];

//请在两条星线之间填入相应的代码,实现两个数的交换

/**************************************************/

p[j-1]=p[j];

/***************************************************/

p[j]=temp;

}

}

void main( void)

{

int a1[6]={34,13,22,53,4,46},*pi,i;

//请在两条星线之间填入相应的代码,实现指针指向数组

/**************************************************/

pi=a1;

/***************************************************/

sort (pi,6) ;

for (i=0;i<6;i++) printf(“%a1[i]<<'\t';

printf(“%endl;

}

2、【简单应用题】(注:以下文件均保存在试题盘shiti\pro\4000248文件夹中)打开proj2.cpp,编写Count函数,计算个人所得税,月收入的5000元以上部分需缴纳20%的税,800元以上5000元之间部分需缴纳3%的税,800元以下的部分免税。在两条星线之间填入相应的代码,使程序完成该功能。(题分:30分)

参考答案:

//编写代码完成Count函数功能:计算个人所得税,并使用return语句把结果返回主函数。//例如,小张月收入为6000元,则她需缴税(6000-5000)×20%+(5000-800)×3%=326元。

//注意:除在指定位置添加语句之外,请不要改动程序中的其他内容。补充语句不限一句,可多句。

#include

double Count(float temf)

{

//请在两条星线之间填入相应的代码,完成应缴税款的计算

/***********************************************/

int tax;

if(temf>5000)tax=(temf-5000)*0.2+(5000-800)*0.03;

else if(temf>800)tax=(temf-800)*0.03;

else tax=0;

return tax;

/************************************************/

}

void main()

{

float tax,income;

printf("请输入你的收入:";

scanf("%f",income);

tax=Count(income);

printf("应缴税:%f",tax);

}

3、【简单操作题】(注:以下文件均保存在试题盘shiti\pro\4000249文件夹中)打开proj3.cpp,输入一行字符串,要求将每个单词中的第一个字母改成大写字母(如果已经是大写则不变)。(提示:读一行字符用scanf(“%.getline()。)(题分:30分)

参考答案:

//程序功能:输入一行字符串,要求将每个单词中的第一个字母改成大写字母(如果已经是大写则不变)

//注意:补充语句不限一句,可多句。

//提示:读一字符用getchar()

#include

#include

void main()

{

char str[100],*p=str,ch;

int i=0,k=0;

//k为新单词标识,若为新单词k为0,否则k为1

//请在两条星线之间填入相应的代码(必须使用while循环语句)

/******************************************/

ch=getchar();

while(ch!='\n'){

str[i]=ch;

i++;

ch=getchar();

}

str[i]='\n';

while(*p!='\n')

{

if(*p==' ')k=0;

else if(k==0)

{

if(*p>='a' && *p<='z')*p=*p-32;

k=1;

}

p++;

}

printf("结果:");

for(i=0;str[i]!='\n';i++)

printf("%c",str[i]);

printf("\n");

/******************************************/

}

C语言模拟试卷2(带答案)

,. 单选题: 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); }

C语言模拟试卷A

安徽农业大学经济技术学院 《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

最新C语言程序设计模拟试题5(附答案)

《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);

C语言程序设计模拟试题1(附答案)

《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语言模拟试卷A

《C语言程序设计》模拟试卷A (闭卷考试) 一、选择题(每题 分,共 分) 、以下不正确的 语言标识符是 。 、设有说明: 则表达式 值的数据类型为: 。 、根据下述定义,可以输出字符 的语句是 。

、以下说法中正确的是: 。 语言程序总是从第一个定义的函数开始执行 在 语言程序中,要调用的函数必须放在 函数中定义 语言程序总是从 函数开始执行 语言程序中的 函数必须放在程序的开始部分 、在定义 之后,对 的引用正确的是 。 、以下不能正确赋值的是 。 、设 和 都是 类型,则 循环语句 。 最多执行 次 最多执行 次 是无限循环 循环体一次也不执行 、 语言中表示“在使用 之前,先使 的值加 ”的正确方式是 。 、设有说明 其中 是 。

个指向整型变量的指针 指向 个整型变量的函数指针 一个指向具有 个整型元素的一维数组的指针 具有 个指针元素的一维指针数组,每个元素都只能指向整型量 、在下面关于指针的说法中,错误的一条是 。 变量的指针就是变量的地址 可以将一个整型量或任何其他非地址类型的数据赋给一个指针变量 一个指针变量只能指向同一类型的变量 指针变量中只能存放地址(指针) 二、读程序写结果(每题 分,共 分) 、以下程序运行后输出的结果是: 、若输入 ,以下程序的输出结果是:

、以下程序的输出结果是 、以下程序的输出结果是

、以下程序的输出结果是 、以下程序的输出结果是

; 、以下程序的输出结果是 三、程序填空(每空 分,共 分) 、将一个数组中的元素按逆序重新存放。例如原来的顺序为: 要求改为: 。 初始数组

C语言模拟试卷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

C语言模拟试题二

模拟试题二 一、选择题(本大题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(附答案)

《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)。

C语言模拟试题(答案)

一、选择题 1.有如下程序: main() { int a=1,b=2; a+=b;b=a-b;a-=b; printf("%d,%d\n",a,b); } 该程序的输出结果是【】。 A.1,2 B.2,1 C.2,2 D.3,2 2.有以下程序: main() { int i; for(i=0;i<3;i++) switch(i) { case 1:printf("%d",i); case 2:printf("%d",i); default:printf("%d",i); } } 执行后输出的结果是【】。 A.011122 B.012 C.012020 D.120。3.有以下程序: main() { int a=5,b=4,c=6,d; printf("%d\n",d=a>b?(a>c?a:c):(b)); } 执行后输出结果是【】。 A.5 B.4 C.6 D.不确定 4.有如下程序: f(int a) { int b=0; static int c=3; b++;c++; return(a+b+c) ;

} main() { int a=2,i; for(i=0;i<3;i++) printf("%2d",f(a)); } 该程序的输出结果是【】。 A.7 7 7 B.7 7 8 C. 7 8 9 D.7 8 8 5.有如下程序段: main() { int a,b,c=246; a=c/100%9; b=(-1) && (-1); printf("%d,%d\n",a,b); } 输出结果是【】。 A.2,1 B. 3,2 C. 4,3 D. 2,-1 6.有如下程序: main() { char str[ ][20]={"Hello","Beijing"}, *p=str; printf("%d\n",strlen(p+22)); } 该程序的输出结果是【】。 A.0 B.5 C.7 D.20 7.有如下程序: #define U 2 #define V U+2 #define X V*V/2 main() { printf("%d\n",5*X); } 该程序的输出结果是【】。 A.10 B.20 C.15 D.40 8.有以下程序: main() { int a[4][4]={{1,2,3,4},{5,6,7,8},{3,9,10,2},{4,2,9,6}}; int i,s=0; for(i=0;i<4;i++) s+=a[i][1];

C语言基础知识复习题模拟试题一

模拟试题一 一、选择题(本大题30分,每小题2分) 1.下列说法正确的是 H 。 A)main函数必须放在C程序的开头 B)main函数必须放在C程序的最后 C)main函数可以放在C程序的中间部分,但在执行C程序时是从程序开头执行的 D)main函数可以放在C程序的中间部分,但在执行C程序时是从main函数开始的 2.在下面几组数据类型中, 全为最常用的基本数据类型的是哪一组: A 。 A)整型实型字符型 B)整型数组指针 C)数组结构体共用体 D)指针逻辑型空类型 3.若有说明语句:char c= ‘\64’ ; 则变量C包含: A 。 A)1个字符 B)2个字符 C)3个字符 D)说明不合法,C值不确定 4.设有如下定义和执行语句,其输出结果为:。 int a=3,b=3; a = -- b + 1; printf(“%d %d”,a,b); A)3 2 B)4 2 C)2 2 D)2 3 语言中,运算对象必须是整型数的运算符是 A 。 A)% B)\ C)% 和 \ D)** 6.能正确表示x的取值范围在[0,100]和[-10,-5]内的表达式是 C 。 A)(x<=-10)||(x>=-5)&&(x<=0)||(x>=100) B)(x>=-10)&&(x<=-5)||(x>=0)&&(x<=100) C)(x>=-10)&&(x<=-5)&&(x>=0)&&(x<=100) D)(x<=-10)||(x>=-5)&&(x<=0)||(x>=100) 7.程序段如下 int k=0; while(k++<=2); printf("last=%d\n",k); 则执行结果是last= B 。 A)2 B)3 C)4 D)无结果 8.下面有关for循环的正确描述是 A 。 A)for循环只能用于循环次数已经确定的情况 B)for循环是先执行循环体语句,后判断表达式 C)在for循环中,不能用break语句跳出循环体 D)for循环的循环体语句中,可以包含多条语句,但必须用花括号括起来 9.若二维数组a有m列,则a[I][j]元素前的数组元素个数为:。 A)j*m+i B)i*m+j C)i*m+j-1 D)i*m+j+1

C语言模拟试题四

模拟试题四 一、选择题(本大题30分,每小题2分) 1.在C语言中,反斜杠符是。 A)\n B)\t C)\v D)\ \ 2.表达式18/4*sqrt(4.0)/8值的数据类型为。 A)int B)float C)double D)不确定 3.设整型变量a值为9,则下列表达式中使b的值不为4的表达式。 A)b=a/2 B)b=a%2 C)b=8-(3,a-5) D)b=a>5?4:2 4.已知变量C1为字符型变量,下面不正确的赋值语句是:。 A)C1 = ...abc?B)C1= 0 C)C1 = …7?+ …9?D)C1= 7 + 9 5.以下程序的输出结果是:。(注:▂表示空格) main( ) { printf(“\n*s1=%8s*”, “china”); printf(“\n*s2=%-5s*”, “chi”) ; } A)*s1=china▂▂▂* B)*s1=china▂▂▂* *s2=chi* *s2=chi▂▂* C)*s1=▂▂▂china* D)*s1=▂▂▂china* *s2=▂▂chi * *s2=chi▂▂* 6.设a、b和c是int型变量,且a=2,b=4,c=6,则下面表达式中值为0的是:。A)‘a’+ …b?B)a<=b C)a||b+c&&b-c D)!( (ay||xz) { 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 8.下列字符串赋值语句中,不能正确把字符串C program赋给数组的语句是:。A)char a1[]={…C?, …?, …p?, …r?, …o?, …g?, …r?, …a?, …m?} B)char a2[10]; strcpy(a2, “C program”); C)char a3[10]; a3= “C program”; D)char a4[10]={ “C program”} 9.用scanf函数输入一个字符串到数组str中,下面正确的语句是:。 A)scanf(“%s”,&str); B)scanf(“%c”,&str[10]); C)scanf(“%s”, str) ; D)scanf(“%s”,str[10]); 10.C语言规定,C程序的各函数之间。 A)允许嵌套调用,但不允许嵌套定义; B)不允许嵌套调用,但允许嵌套定义; C)不允许嵌套调用,也不允许嵌套定义; D)允许嵌套调用,也允许嵌套定义;。

C语言模拟试卷2(带答案)

单选题: 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); }

C语言模拟试题

(1)一:选择题(本题共15 小题,满分30 分) (1).以下叙述正确的是B A)C语言程序是由过程和函数组成的 B)C语言函数可以嵌套调用,例如:fun(fun(x)) C)C语言函数不可以单独编译 D)C语言中除了main函数,其他函数不可作为单独文件形式存在 (2)以下C语言用户标识符中,不合法的是D A)_1 B)AaBc C)a_b D)a—b (3)若有定义:double a=22;int i=0,k=18;,则不符合C语言规定的赋值语句是C A)a=a++,i++; B)i=(a+k)<=(i+k); C)i=a%11; D)i=!a; (4)以下程序的输出结果是(B)。 main() { int x=2, y=-1, z=2; if (x0;j--) {if((i*j)>3)break; m*=i*j; } } printf("m=%d\n",m); } 程序运行后的输出结果是A A)m=6 B)m=2 C)m=4

(7)有以下程序D #include "stdio.h" main() {int a=1;int b=2; for(;a<8;a++) {b+=a;a+=2;} printf("%d,%d\n",a,b); } 程序运行后的输出结果是 A)9,18 B)8,11 C)7,11 D)10,14 (8)以下关于return语句的叙述中正确的是b A)一个自定义函数中必须有一条return语句 B)一个自定义函数中可以根据不同情况设置多条return语句 C)定义成void类型的函数中可以有带返回值的return语句 D)没有return语句的自定义函数在执行结束时不能返回到调用处 (9)下列选项中,能正确定义数组的语句是D A)int num[0..2008]; B)int num[]; C)int N=2008; int num[N]; D)#define N 2008 int num[N]; (10).有以下程序段 int a[10]={1,2,3,4,5,6,7,8,9,10},*p,b; p=&a[3]; b=p[5]; b中的值是(D) A. 5 B. 6 C. 8 D. 9 (11)有以下程序 #include"stdio.h" main() {int a[5]={1,2,3,4,5},b[5]={0,2,1,3,0},i,s=0; for(i=0;i<5;i++) s=s+a[b[i]]; printf("%d\n", s); } 程序运行后的输出结果是c A)6 B)10 C)11 D)15 (12)有以下程序 #include "stdio.h" #define SUB(a) (a)-(a)

C语言程序设计模拟试题

C语言程序设计模拟试题2 一、单选题(每题3分,共计30分) 1、C语言中基本数据类型包括(B)。 A、整型、实型、逻辑型 B、整型、实型、字符型 C、整型、字符型、逻辑型 D、整型、实型、逻辑型、实型 2、下列选项中不属于C语言的优点的选项是()。 A、C语言语句简洁、紧凑,使用方便灵活 B、C语言程序易于移植 C、生成的目标代码质量高,运行效率高 D、数据类型检查严格 3、若a、b均为int型变量,且a=100,则关于循环语句for(b=100; a!=b; ++a,++b) printf ( “ ------------”) ;的正确说法是()。 A、循环体只执行一次 B、死循环 C、循环体一次也不执行 D、输出----------- 4、对C语言来说,下列标识符中不合法的选项是()。 A、AB2C B、ab2c C、ab.2c D、a_b2c 5、执行下列程序段后,i的值是()。 s = 0; for( i = 1; i <= 4; i=i+3 ){ s += i; } A、1 B、4 C、5 D、7 6、下列各语句中,能够输出整型变量a、b中最大值的是( )。 A、printf("%d\n",(a>b)?a,b); B、(a>b)? printf("%d",b): printf("%d",a); C、printf("%d",if(a>b)a else b); D、printf("%d\n",(a>b)?a:b); 7、设int a = 9,b = 8,c = 7, x = 1; 则执行语句if (a>7) if (b>8) if (c>9) x=2 ;else x = 3; 后,x 的值是( )。 A、0 B、2 C、1 D、3 8、下列语句中定义x为指向int类型变量a的指针,正确的是()。 A、int a, *x=a; B、int a, *x=&a; C、int *x=&a, a; D、int a, x=a; 9、以下正确的函数定义形式是()。 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) 10、假定int类型变量占用两个字节,有定义:int x[10]={0,2,4};,则数组x 在内存中所占字节数是( ) 编辑版word

C语言模拟试题

《C语言程序设计教程实验与练习》(第二版)模拟试题II及答案 一、单项选择题(每题2分,30道题,共60分) 1.下面的程序将输出: main() { float f; int x=1,y=; f=x/y; printf("f=%,y=%#X", f, y ); } = , y=2 = , y=0X2 = , y=0X2 = , y=2 2.下面的程序将输出: #include "" main() { int len; char str[]="a\b\04235\0"; len=strlen(str); printf("%d",len); } A. 10 B. 5 C. 6 D. 7 3.下面的程序将输出: main() { int a=0x31; char *str[]={"this is one. ","this is two. "}; char ch; ch=++a-’0’; switch(ch) { case 1: printf ("%s", str[0]); case 2: printf ("%s", str[1]); default: printf ("no way! "); } } is one. is two. way! is way! 4.下面的程序将输出: main() { int a[5]={1,2,3};

int k,j; for(k=1;k<4;k++) a[k]++; for(j=0;j<5;j++) printf("%d ",a[j]); } 3 4 1 0 3 4 1 0 3 4 0 0 3 4 0 0 5.已知有下面两个变量,将数组a的第2个单元赋值为1的C语句是: int a[10]; int *p; p=a; [2]=1; [1]=1; C.*(p++)=1; D.*(++a)=1; 6.下面程序将输出: void add(int a) { a++; return; } main() { int k; k=; add(k); printf("%d",k); } A. B. C. 3 D. 4 7.下列循环结构中,不是 ..无限循环的是: A. for(i=1, s=0; ; i++) B. i=10; s=s+i ; while(1) {i=i%10+1; if(i>10) break; } C. int i=0; D. i =100; do{ ++i ; }while(i>=0); while(++i%2) i++; 8.若已知int a[3][4],*p;p=(int *)a;那么对数组a的第2行第2列的正确引用是: [2][2] [5] [5] [1][1] 9.已知:int (*p)[20]; 且p的值是0X5000,请问表达式p+2的值是多少? A. 0X5050 B. 0X5002 C. 0X5004 D. 0X5040

C语言模拟试题

二级C 语言笔试试卷(A) 注意事项:1.一题答案填涂在答题卡上 2.二、三、四、五题答案做在答题纸上 一.单项选择题。(每小题1分,共20分) 1. C 程序的源程序由预处理命令和( )组成。 (A)函数 (B )语句 (C )保留字 (D )标始符 2. 下面程序段中,与if (x%2)中的x%2所表示条件等价的是( )。 scanf(〞%d 〞,&x); (A )x%2==0 (B )x%2!=1 (C) x%2!=0 (D) x%2==1 3. 执行下面C 语言序列后,变量b 的值是( )。 Int a,b,c ; a=b=c=1; ++a||++b&&++c ; (A )错误 (B )0 (C) 2 (D) 1 4. 设有C 语句int a[3][4];, 则每次移动过a 数组一行元素的指针变量定义形式是( )。 (A )int *p ; (B )int **p ; (C) int(*p)[4]; (D) int *p[4]; 5. 设有整型变量a, 实型变量f,双精度型变量x ,则表达式10+′b ′+x*f 值的类型为( )。 (A )int (B )float (C)double (D)不能确定 6. C 语言中规定,函数调用中用简单变量做实参时,它和对应形参之间的数据传递方式是( )。 (A )地址传递 (B )单向值传递 (C) 由实参传给形参,再由形参传回给实参 (D) 由用户指定传递方式 7. 下面程序的输出是( )。 #include void main() { int x=10,y=3; printf(〞%d\n 〞,y=x/y); } (A )0 (B )1 (C) 3 (D) 不确定的值 8. 执行下面的程序段后,B 的值为( )。 int x=35; char z=′A ′; int B; B=((X&5)&&(z<′a ′)); (A )0 (B )1 (C)2 (D) 3 9. 以下程序的输出结果为( )。 #include void main() { int i=0; for(;;) if(i++==5) break; printf(〞%d\n 〞,i); } (A )0 (B )5 (C) 6 (D) 前3个选项都错 10. 已知:char s[4]=〞cba 〞;char *p; 执行语句列p=s;printf(〞%c\n 〞,*p+1);后,其输出为( )。 (A )c (B )b (C) a (D) d 11. 运行完下列程序后,在屏幕上的内容是( )。 #include void main() { int a=0; a+=a=12; printf(〞%d\n 〞,a); } (A )0 (B )6 (C) 12 (D) 24 12. 已知:int x= 1 , y = 2, z =0, 则执行z=x>y?(10+x,10-x):(20+y,20-y)后,z 的值为( )。 (A )11 (B )9 (C) 18 (D) 22 13. 若已定义x 和y 为double 类型,则表达式x=2,y=x+10/4的值是( ) (A )2 (B )4 (C)4.0 (D) 4.5 14. 以下程序的输出结果是( )。 #include int x=3,y=4; void main() { int x=0; x+=y++; printf(〞%d 〞,x);

相关主题