C语言-模拟考试题

C语言-模拟考试题
C语言-模拟考试题

C语言模拟试题

选择题(1)

1.若有下列定义:char c[3],*pc=c; 则对c数组元素地址的正确引用是:

A. &c[3]

B. pc[3]

C. pc+2

D. &c

2.执行语句printf(“%d\n”,strlen(“abc\x41\n”));输出结果是:

A. 5

B. 7

C. 3

D. 4

3设有下列程序段,则scanf函数调用语句中对结构体变量成员的不正确引用为:struct student

{

char name[20];

int age;

char sex;

}stu[5], *p;

p=stu;

A. scanf("%s", stu[0].name);

B. scanf("%d", p->age);

C. scanf("%c", &p->sex);

D. scanf("%d", &stu[0].age);

4若有定义:int b=7;float a=2.5,c=4.7;

则表达式a+(int)(b/3*(int)(a+c)/2)%4的值为:

A. 0

B. 1

C. 2

D. 3

5若有定义:int a[3][4]={{1,2},{0},{4,6,8,10}};则执行此语句后,a[2][1]得到的初值是:

A. 4

B. 2

C. 6

D. 8

6若有int a=1,b=4,c=3,d=2;语句,则执行完该语句后,条件表达式a

A. 1

B. 2

C. 3

D. 4

7putchar()函数可以向终端输出一个:

A. 整型变量表达式值

B. 实型变量值

C. 字符串

D. 字符或字符型变量值

8下列各语句中正确定义了数组的是:

A. int a[5],b[2,3];

B. char str(30);

C. int x[];

D. int x[5]={1,2,3};

9将整型变量a、b中的较大值为变量c赋值,下列语句中正确的是:

A. c= =(a>b)? a:b;

B. c=(a>b)?a:b;

C. c=if(a>b)a else b;

D. (a

10若已定义x和y为double类型,则表达式x=1,y=x+3/2的值是:

A. 1

B. 2

C. 2.0

D. 2.5

11以下语句或语句组中,能正确进行字符串赋值的是:

A. char s[10]; s="right!";

B. char *sp="right!";

C. char s[10]; *s="right!"

D. char *sp; *sp="right!";

12若int a[ ][4]={1,2,3,4,5,6,7,8,9};则a数组第一维的大小是:

A. 1

B. 2

C. 3

D. 无确定值

13若要求以下程序的输出结果是a=5,b=4,则输入数据的形式应该是:#include “stdio.h”

main()

{ int a,b;

scanf("%d,b=%d",&a,&b);

printf("a=%d,b=%d",a,b); }

A. 5 4

B. 5,4

C. 5 b=4

14以下运算符中,优先级最高的是:

A. <=

B. &&

C. =

D. ++

15以下对C语言函数的描述中,不正确的是:

A. C语言中,函数可以嵌套定义

B. C语言中,函数可以递归调用

C. C语言中,函数可以没有返回值

D. C语言程序由函数组成

16若有以下定义和语句,则不能访问数组元素的表达式是:int i=2,*p,a[ ]={1,2,3,4,5};

p=a;

A. *(a+i)

B. a[p-a]

C. p+i

D. *(&a[i])

17C语言中NULL表示:

A. 空指针

B. 变量未找到

C. 字符串的结束符

D. 文件的结束符

18以下程序的运行结果是:

#include "stdio.h"

main()

if (m++>5) printf("%d\n",m);

else printf("%d\n", m--);}

A. 4

B. 5

C. 6

D. 7

19以下程序的运行结果是:

#include "stdio.h"

main()

{int a[][3]={{1,2,3},{4,5},{6},{0}};

printf("%d,%d,%d\n",a[1][1],a[2][1],a[3][1]); }

A. 3,2,1

B. 5,0,0

C. 4,1,0

D. 1,5,0

20下面程序的运行结果是:

#include "stdio.h"

main()

{int a[10]={2,4,6,8,10,12,14,16,18},*p;

p=a+5;

printf ("%d,%d\n",*(p+1),*++p+1); }

A. 16,15

B. 14,16

C. 16,18

D. 15,14

21以下程序的输出结果是:

#include "stdio.h"

fun2( int a,int b)

{ int c;

c=a*b%3;

fun1(int a,int b)

{ int c;

a+=a;b+=b;

c=fun2(a,b);

return c*c;}

main()

{ int x=11,y=19;

printf("%d\n", fun1(x,y));}

A. 3

B. 5

C. 4

D. 6

22以下程序运行后的输出结果是?

#include "stdio.h"

#define SQR(x) x*x

main()

{ int a,k=3;

a=++SQR(k+1);

printf("%d\n",a); }

A. 7

B. 8

C. 9

D. 10

23执行语句for(i=10;i>0;i--);后,变量i的值为:

A. 10

B. 0

C. 9

D. 1

24下列i,j,k 均为整型变量,选项中不正确的C语言赋值语句是:A. i+1=k;

B. i=j=k=1;

C. i=j+=++k;

D. j=i+1==i++;

25设有语句int a[10]={0,l,2,3,4,5,6,7,8,9},*p=a;则不能对a数组元素的正确引用是:

A. a[p-a]

B. *(*(a+5))

C. p[5]

D. *(&a[5])

26已有定义:char a[]="xyz",b[]={'x','y','z'};,以下叙述中正确的是:

A. 数组a和b的元素个数相同

B. a数组元素少于b数组

C. a数组元素多于b数组

D. 上述说法都不对

27以写方式打开二进制文件my.dat的正确写法是:

A. fopen(“my.dat”,”rb”);

B. fopen(“my.dat”,”r”);

C. fopen(“my.dat”,”wb”);

D. fopen(“my.dat”,”w”);

28对于定义

struct sa

{int x;float y;}data,*p=&data;

请从下列候选答案中,选择变量data的x成员的正确引用:

A. (*p).data

B. (*p).x

C. p->data.x

D. p.data.x

29循环语句的循环体中执行continue语句,其作用是:

A. 立即终止程序执行

B. 继续执行continue语句之后的循环体各语句

C. 结束本次循环

D. 跳出循环

30定义float a;现要从键盘输入a的数据,其整数位为3位,小数位为2位,则选用:

A. scanf(“%f”,&a);

B. scanf(“%5.2f”,a);

C. scanf(“%6.2f”,&a);

D.scanf(“%f”,a);

选择题(2)

1.以下叙述正确的是

A. C语言程序是由过程和函数组成的

B. C语言函数可以嵌套调用,例如:fun(fun(x))

C. C语言函数不可以单独编译

D. C语言中除了main函数,其他函数不可作为单独文件形式存在

2以下关于C语言的叙述中正确的是

A. C语言中的注释不可以夹在变量名或关键字的中间

B. C语言中的变量可以在使用之前的任何位置进行定义

C. 在C语言算术表达式的书写中,运算符两侧的运算数类型必须一致

D. C语言的数值常量中夹带空格不影响常量值的正确表示

3以下C语言用户标识符中,不合法的是

A. _1

B. AaBc

C. a_b

D. a-b

4若有定义:double a=22;int i=0,k=18;,则不符合C语言规定的赋值语句是

A. a=a++,i++;

B. i=(a+k)<=(i+k);

C. i=a%11;

D. i=!a;

5有以下程序

#include

main() {char a,b,c,d; scanf("%c%c",&a,&b);

c=getchar(); d=getchar();

printf("%c%c%c%c\n",a,b,c,d);}

当执行程序时,按下列方式输入数据:(代表回车)

12

34

则输出结果是

A. 1234

B. 12

C. 12

3

D. 12

34

6以i关于C语言数据类型使用的叙述中错误的是

A. 若要准确无误差的表示自然数,应使用整数类型

B. 若要保存带有多位小数的数据,应使用双精度类型

C. 若要处理如“人员信息”等含有不同类型的相关数据,应自定义结构体类型

D. 若只处理“真”和“假”两种逻辑值,应使用逻辑类型

7若a是数值类型,则逻辑表达式(a==1)||(a!=1)的值是

A. 1

B. 0

C. 2

D. 不知道a的值,不能确定

8以下选项中与if(a==1)a=b; else a++;语句功能不同的switch语句是

A. switch(a)

{case:a=b;break;

default:a++;

B. switch(a==1)

{case 0:a=b;break;

case 1:a++;

}

C. switch(a)

{default:a++;break;

case 1:a=b;

}

D. switch(a==1)

{case 1:a=b;break;

case 0:a++;

}

9有如下嵌套的if语句

if (a

if(a

else k=c;

else

if(b

else k=c;

10以下选项中与上述if语句等价的语句是

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语言期末考试模拟试题及答案

重点看后面的起泡法排序和找最大最小值。那些问结果的奇怪的代码,随意。 C语言期末考试试题 2008年04月12日星期六00:22 一选择题(24分,每小题2分) 1.已知函数fread的调用形式为fread(buffer,size,count,fp),其中buffer代表的是()。 A存放读入数据项的存储区 B存放读入数据的地址或指向此地址的指针 C一个指向所读文件的文件指针 D一个整形变量,代表要读入的数据项总数 )。 2.以下程序的输出结果为( main() { int i=010,j=10; printf("%d,%d\n",i++,j--); } A11,9 B9,10 C8,10 D9,9 3.设a为int型变量,执行下列赋值语句后,a的取值分别是()。 a=125.534; a=20.0/3; a=(int)125.521%4; a=5<<2; A125,6,31,1 B125,6,1,20 C125,6.666666,31,20 D125.534,6.666666,2,20 )。 4.设i和k都是int类型,则for循环语句( for(i=0,k=-1;k=1;i++,k++) printf("****\n"); A循环结束的条件不合法 B循环体一次也不执行

C循环体只执行一次 D是无限循环 5.以下程序的输出结果为(main() { char c; int i; )。 }for(i=65;i<68;i++) { c=i+32; switch(c) { case'a': case'b': case'c':printf("%c,",c);break; default:printf("end"); } } A a,b,c,end B a,a,a,end C a,a,a, D a,b,c, 6.函数调用语句:fseek(fp,-10L,2);的含义是()。 A将文件位置指针从文件末尾处向文件头的方向移动10个字节B将文件位置指针从当前位置向文件头的方向移动10个字节C将文件位置指针从当前位置向文件末尾方向移动10个字节D将文件位置指针移到距离文件头10个字节处 7.以下程序的输出结果为( main() { int i=0,j=0; while(s1[i]!='\0') i++; while(s2[j]!='\0') s1[i++]=s2[j++]; s1[i]=0; )。

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

本文由2009220176贡献 doc文档可能在WAP端浏览体验不佳。建议您优先选择TXT,或下载源文件到本机查看。 语言程序设计》 《C 语言程序设计》模拟试卷二 一、填空题。(每空 2 分,共 30 分) 填空题。(每空 。( 1.设有变量说明语句 int x=1,y=2; 则执行下述 printf 语句的输出结果是 printf("%f\n",1.0+x/y); 2.执行下述程序 #include main() { int x,y; scanf("%2d%*2s%1d",&x,&y); printf("%d\n",x+y); } 若从键盘输入 12345671 则程序的输出结果是。 3.以下程序的功能是:从键盘上输入若干名学生的成绩(百分制,可带小数,以输入 负数或 0 为结束标志),统计并输出最高成绩和最低成绩。请填空。 #include main() { float x,amax,amin; scanf("%f",&x); amax=x; amin=x; while ( ) 。 { if (x>amax) amax=x; else if (x main() 。 { int a[6],i; for (i=0;i<6;i++) { a[i]=9*(i-2+4*(i>3))%5; printf("%3d",a[i]); } printf("\n"); } 6.执行下述程序时的输出结果是 #include main() { int a[]={2,4,6,},*ptr=&a[0],x=8,y,z; for (y=0;y<3;y++) z=(*(ptr+y)<x)?*(ptr+y):x; printf("%d\n",z); } 7.执行下述程序的输出结果是 #include main() { int a[][2]={10,20,30,40,50,60},(*p)[2]; p=a; printf("%d\n",*(*(p+2)+1)); } 8.执行以下程序的输出结果是 #include 。 。 。 main() { int s,i,sum(); for (i=1;i<=10;i++) s=sum(i); printf("s=%d\n",s); } sum(int k) { int x=0; return (x+=k); } 9.下述函数定义用来求出两个整数之和,并通过函数的模拟传地址调用,传回两整 数相加之和值,请填空。 void add(int x,int y, { *z=x+y; } 10.函数 func 的功能是将整型变量 x 的值转换成二进制数,并将该二进制数的每一 位存入由整型指针 b 所指向的一维数组 a,最低位存放于 a[0]中, 次低位存放于 a[1] 中,依此类推。请填空。 void func(int x,int *b) { int r; do { r=x%2; =r; ) x/=2; } while (x); } 11.以下程序中函数 invert 实现将数组内所有数组元素的值逆置。比如,执行本程 序将输出 10 9 8 7 6 5 4 3 2 1 请填空。 #include main() { int a[10]={1,2,3,4,5,6,7,8,9,10},i,n=10; invert(a,n-1); for (i=0;i<10;i++) printf("%3d”,a[i]); printf("\n"); } invert(int *s,int num) { int *t,k; t=s+num; while ( { k=*s; *s=*t; *t=k; s++; t--; } ) } 12.若有以下定义和说明,则结构体变量 w 在内存中所占的字节数是 union aa { float x; float y; char c[6]; }; struct st { union aa v; float w[5]; double ave; } w; 13.执行下述程序的输出结果是 #include struct str { float x; char *y; } *m; struct str group[3]={ 95.0,"Li", 82.5,"Wang", 73.5,"Sun" }; main() { m=group; printf("%.lf,%s\n",m->x,m->y); } 。 14.下面的程序用来统计某文件文件中字符的个数。请填空。 #include #include main() { FILE *fp; long num=0; if ((fp=fopen("fnam.dat","r"))==NULL) { printf("Can't open this file!\n"); exit(0); } while ( { fgetc(fp); num++; } printf("num=%d\n",num); fclose(fp); } 15.执行下述程序后,输出结果为 。 #include #define FUN1(a,b) a+b #define FUN2(a,b) a-b #define CAL(a,b) a*b+a+3 main() { printf("%d\n",CAL(FUN1(3,5),FUN2(4,5))); } ) 二、单项选择题。(每题 1 分,共 20 分) 单项选择题。(每题 。( 1.以下不是 c 语言规定保留字的是( (A)float (B)integer )。 (D) unsigned ) (C)signed 2.设 int 型变量 x 有初始值 3,则表达式 x++*5/10 的值是( (A)0 (B)1 (C)2 ) (D)3 3.下述程序执行后的输出结果是( #include main() { int x='f'; printf("%c\n",'a'+(x-'a'+1)); } (A)g 4.设有程序 #include main() { int i,j; for (i=0,j=1;i<=j+1;i+=2,j--) printf("%d\n",i); } (B)h (C)i (D)j 在运行上述程序时,for 语句中循环体的执行次数是( (A)3 (B)2 (C)1 (D)0 )

2019年12月计算机二级C语言考试模拟题及答案

2019年12月计算机二级C语言考试模拟题及答案 A.用户自己定义的函数只能调用库函数 B.实用的C语言源程序总是由一个或多个函数组成 C.不同函数的形式参数不能使用相同名称的标识符 D.在C语言的函数内部,能够定义局部嵌套函数 参考答案:B 参考解析:A选项中,”用户自己定义的函数只能调用库函数”描述是不准确的,也能够调用自定义函数;C选项中,对于不同函数的形式参数能够使用相同名称的标识符;D选项中,关于函数的定义不能够嵌套,但函数的调用能够嵌套。所以B选项准确。 2[单选题]以下关于C语言数据类型使用的叙述中错误的是( )。 A.若要处理如“人员信息”等含有不同类型的相关数据,应自定义结构体类型 B.若要保存带有多位小数的数据,可使用双精度类型 C.若只处理“真”和“假”两种逻辑值,应使用逻辑类型 D.整数类型表示的自然数是准确无误差的 参考答案:C 参考解析:C语言中没有逻辑类型,所以c错误。若要保存带有多位小数的数据,能够用单精度类型也能够用双精度类型。处理包含不同类型的相关数据能够定义为结构体类型。整数类型能够无误差的表示自然数。 3[单选题]下面选项中关于编译预处理的叙述准确的是A.预处理命令行必须使用分号结尾 B.凡是以#号开头的行,都被称为编译预处理命令行 C.预处理命令行不能出现在程序的最后一行

D.预处理命令行的作用域是到最近的函数结束处 参考答案:B 参考解析:本题考查预编译的预编译处理命令行,预处理命令行不能以分号结尾,所以A选项错误,预处理命令行能够出现在程序的最后一行,预处理命令行作用域是整个文件。 4[单选题]设--X树共有150个结点,其中度为l的结点有l0个,则该---X树中的叶子结点数为( )。 A.71 B.70 C.69 D.不可能有这样的二叉树 参考答案:D 参考解析:在树结构中,一个结点所拥有的后件个数称为该结点的度,所有结点中的度称为树的度。对任何一棵二叉树,度为0的结点总是比度为2的结点多一个。如果有一棵二叉树,结点总数为l50,假设度为0的结点个数为n,则有n+10+n一1=150,n=70.5,因为结点个数必须是整数,所以不可能有题目中这样的二叉树。故选择D选项。 5[单选题]以下选项中,能用作用户标识符的是( )。 A.-0- B.8-;8 C.void D.unsigned 参考答案:A 参考解析:C语言中标识符由字母、下划线、数字组成,且开头必须是字母或下划线。另外,关键字不能作为标识符。8中以数字8开头,所以错误。c与D中用的是关键字void与unsigned,所以错误。 6[单选题]以下叙述准确的是( )。A.表达式sizeof(FILE*)==sizeof(int*)的值为真 B.文件指针的值是一个整数,它的值一定小于文件字节数 C.文件指针的值是所指文件的当前读取位置 D.使用fscanf函数能够向任意类型的文件中写入任意数量的字符

C语言模拟试题1

一、单选题(15题每题1分共15分) 1.一个c程序的执行是从_____。(知识点:1.3) A)本程序的main函数开始,到main函数结束 B)本程序文件的第一个函数开始,到本程序文件的最后一个函数结束 C)本程序的main函数开始,到本程序文件的最后一个函数结束 D)本程序文件的第一个函数开始,到本程序main函数结束 2.下列字符串为标识符的是_____。(知识点:3.2) A)_1_A B)5_student C)long D)!DF 3.下面字符常量正确的是_____。(知识点:3.5) A)“c” B)…\\'' C)‘n’D)‘ab’ 4.已知各变量的类型说明如下: int k,a,b; unsigned w=5; double x=1.42; 则以下不符合c语言语法的表达式是______ 。(知识点:3.9) A)x%(-3)B)w+=-2 C)k=(a=2,b=3)D)a+=a-=a=3 5.若以下变量均是整型,且num=sum=7;则执行表达式sum=num++,sum++,++num后sum 的值为____。(知识点:3.8) A)7 B)8 C)9 D)10 6.printf函数中用到格式符%5s,其中数字5表示输出的字符串占用5列。如果字符串长度大于5,则输出方式为____。(知识点:4.4) A)从左起输出该字串,右补空格 B)按原字符长从左向右全部输出 C)右对齐输出该字串,左补空格 D)输出错误信息 7.有一函数关系见下表:

下面程序段中能正确表示上面关系的是_____。(知识点:5.3) A)y=x+1;B)y=x-1; if(x>=0)if(x!=0) if(x==0)y=x;if(x>0)y=x+1; else y=x-1;else y=x; C)if(x<=0)D)y=x; if(x<0)y=x-1;if(x<=0) else y=x;if(x<0)y=x-1; else y=x+1;else y=x+1; 8.若运行时给变量x输入12,则以下程序的运行结果是_____。(知识点:5.2)main() {int x,y; scanf("%d",&x); y=x>12?x+10:x-12; printf("%d\n",y);} A)0 B)22 c)12 D)10 9.设有程序段 int k=10; while(k=0)k=k-1; 则下面描述中正确的是______。(知识点:6.3) A)while循环执行10次B)循环体语句一次也不执行 B)循环是无限循环D)循环体语句执行一次 10.c语言中whi1e和do-while循环的主要区别是_____。(知识点:6.4) A)do-while的循环体至少无条件执行一次 B)while的循环控制条件比do-while的循环控制条件严格 C)do-while允许从外部转到循环体内

C语言考试试题基础版

一、选择题 1. 在每个C 程序中都必须包含有这样一个函数,该函数的函数名为 。 A. main B. MAIN C. name D. function 2. 在以下关于C 语言的注释的叙述中,不正确的是 。 A .注释可用"/*"、"*/"形式表示,也可用"//"形式表示 B .编译器在编译一个程序时,将跳过注释,不对其进行处理 C .编译器在编译一个程序时,可发现注释中的单词拼写错误 D .程序中注释的多少不会影响所生成的可执行文件的长度 3. 以下叙述不正确的是 。 A .在C 程序中,严格区分大小写字母 B .一个 C 源程序有且仅有一个main 函数 C .在C 程序中,注释只能位于一条语句的后面 D .一个C 程序总是从main 函数开始执行 4. 下列合法的标识符为 A. abde+ B. #KDJF C. 67KDJ D. DK3_ 5. 关于字符串和字符的关系正确的是 A. “A ”与?A ?是相同的 B. 字符串是常量,字符是变量 C. “A ”与?A ?是不同的 D. “A ”与“A ”是相同的 6. 下面关于语句的说法正确的是 A. 下面这两段程序的执行效果是一致的 B. 空语句是只有一个分号的语句,它其实什么也不干 C. 语句的构成不一定需要分号 D. 语句的书写对程序的运行不起作用,因此可以随便写都可以 7. 以下各标识符中,合法的用户标识符组为 。 A. PAd ,P#d ,b-b ,abc ,_0123,ssiped B. cin ,a10,CPP ,float ,del_word ,signed C. void ,max ,hiy ,,list ,*jer if (x>y) {z=x; s=z*z;} else {z=y;s=1/(z*z);} if (x>y) z=x; s=z*z; else z=y;s=1/(z*z);

C语言模拟题

一.选择题 1、()是不正确的。 A、每条语句最后必须有一个分号; B、C源程序可由一个或多个函数组成; C、注释说明只能位于一条语句的后面; D、C源程序的基本组成单位是函数。 2、()是正确的叙述。 A、强制类型转换运算的优先级高于算术运算; B、表达式“m”+“M”是合法的; C、若变量X,Y为整型,则(a+b)++是合法的; D、表达式‘m’*‘n’是合法的; 3、()为正确的变量名 A. k.jeep B. int C.k_5 D. –k15 4、若有定义int m=4321, n=123, k=21; 语句printf( “%4d+%3d+%2d”,m,n,k); 执行后的输出结果是() A、4321432143211231231232121 B、432+123+021 C、432112321 D、4321+123+21 5、若定义int a= -5 , b= -8, c=21,则表达式a>=b|| b

c语言模拟考试题

1. 一个C程序的组成部分可以是()。 A)一个主函数和一至若干个其他函数B)一至若干个主函数 C)一个主程序和一至若干个其他函数D)一个主程序和一至若干个子程序 2. 一个C程序的执行是从()。 (A)本程序的main函数开始,到main函数结束 (B)本程序文件的第一个函数开始,到本程序文件的最后一个函数结束 (C)本程序的main函数开始,到本程序文件的最后一个函数结束 (D)本程序文件的第一个函数开始,到本程序main函数结束 3. C语言中的标识符只能由字母、数字和下划线三种字符组成,且第一个字符()。 A)必须为字母B)必须为下划线C)必须为字母或下划线 D)可以是字母、数字和下划线中任一种字符 4. 设有定义:int m=1,n=-1;则执行语句printf("%d\n",(m--&++n);后的输出结果是()。 A)–1 B)0 C) 1 D) 2 5. 表达式11&10的结果用二进制表示为()。 A)11B)3C)1D)10 6. 设有语句int a=3;则执行语句a+=a-=a*a后,变量a的值是()。 (A)3(B)0(C)9(D)-12 7. 在下列选项中,不的赋值语句是()。 A)t/=5;B)n1=(n2=(n3=0));C)k=i==j;D)a=b+c=1; 8. 下列( )表达式不满足:当x的值为偶数时值为"真",为奇数时值"假"。 A)X%2==0B)!x%2!=0 C)(x/2*2-x)==0D)!(x%2) 9. 若有定义:int a=8,b= 5,c;执行语句c=a/b+0.4 后c的值为() A)1.4 B)1 C)2.0 D)2 10. 假设a=3,b=4,c=5,则逻辑表达式: !(a+b)+c-1&&b+c/2的值是()。 A)true B)false C)0D) 1 11. 若int a=3,b=4;则执行c=a++>2||b-->=4之后,b变量的值为()。 A)3B)0C)4D)2 12. 以下哪个表达式的值为4() A)11/3B)11.0/3C)(flaot)11/3D)(int)(11.0/3+0.5) 13. 若变量a,i已经正确定义,且i已经正确赋值,合法的语句是() A) a==1 B) ++i C) a=a++=5 D)a=int(i) 14. 以下程序的输出结果是() int a=1234; printf("%2d",a); A) 12 B) 34 C)1234 D) 提示错误,无结果 15. 设x,y分别为单精度和双精度类型变量,则下列选项()可将表达式x+y的运算结果强制转换为整型数据。 A)(int)x+y B)int(x)+y C)int(x+y)D)(int)(x+y) 16. 当a=3,b=2,c=1时,表达式f=a>b>c执行完后f的值是() A)1B)0C)3D)2 17. 若x=2,y=1,则表达式x>y?1:1.5的值为() A)1B)1.5C)1.0D)2 18. 在位运算中,操作数每左移一位,其结果相当于() A)操作数乘以2B)操作数除以2C)操作数乘以4D)操作数除以4 19. 在位运算中,某操作数右移3位,其结果相当于() A)操作数乘以6B)操作数除以6C)操作数乘以8D)操作数除以8 20. 在C语言中,若以下变量均为int型,则下面程序段的输出结果是()。 s=6,u=6;u=s++;u++; printf("%d",u); A)7B)6C)5D)4 21. 若有定义:int x,y;char a,b,c;并有以下输入数据:x=12A B C, 则能给x赋整数1,给赋整数2,给a赋字符A,给b赋字符B,给c赋字符C的程序段是() A)scanf("x%d y=%d",&x,&y); a=getch();b=getch();c=getch(); B)scanf("x=%d%d",&x,&y); a=getch();b=getch();c=getch(); C)scanf("x=%d%d%c%c%c",7x,&y,&a,&b,&c); D)scanf("x=%d%d%c%c%c%c%c",&x,&y,&a,&b,&b,&c,&c); 22. 如下程序:#include void main() {int m,n,k; m=(n=4)+(k=10-7); printf(“m=%d\n”,m); } 运行后m的值为()。 (A)4(B)3(C)7(D)14

C语言-模拟考试题

C语言模拟试题 选择题(1) 1.若有下列定义:char c[3],*pc=c; 则对c数组元素地址的正确引用是: A. &c[3] B. pc[3] C. pc+2 D. &c 2.执行语句printf(“%d\n”,strlen(“abc\x41\n”));输出结果是: A. 5 B. 7 C. 3 D. 4 3设有下列程序段,则scanf函数调用语句中对结构体变量成员的不正确引用为:struct student { char name[20]; int age; char sex; }stu[5], *p; p=stu; A. scanf("%s", stu[0].name); B. scanf("%d", p->age); C. scanf("%c", &p->sex); D. scanf("%d", &stu[0].age); 4若有定义:int b=7;float a=2.5,c=4.7; 则表达式a+(int)(b/3*(int)(a+c)/2)%4的值为: A. 0 B. 1 C. 2

D. 3 5若有定义:int a[3][4]={{1,2},{0},{4,6,8,10}};则执行此语句后,a[2][1]得到的初值是: A. 4 B. 2 C. 6 D. 8 6若有int a=1,b=4,c=3,d=2;语句,则执行完该语句后,条件表达式ab)? a:b; B. c=(a>b)?a:b;

C语言模拟试题

C语言模拟试题 一、单项选择题(共40分每题1分) 说明:答案必须填写在答题卡的相应位置上,否则不得分。 1.C语言中字符型(char)数据在内存中的存储形式是____D____。 A、原码 B、反码 C、补码 D、ASCII码 2.C语言中基本的数据类型包括___B_____。 A、整型、实型、逻辑型 B、整型、实型、字符型 C、整型、字符型、逻辑型 D、整型、实型、逻辑型、字符型 3.在C语言中,int类型数据在内存中占用____C____。 A、2字节 B、4字节 C、由编译系统决定 D、由用户决定4.运算符有优先级,C语言中关于运算符优先级的正确叙述是____B____。 A、逻辑运算符高于算术运算符,算术运算符高于关系运算符; B、算术运算符高于关系运算符,关系运算符高于逻辑运算符; C、算术运算符高于逻辑运算符,逻辑运算符高于关系运算符; D、关系运算符高于逻辑运算符,逻辑运算符高于算术运算符。 5.下面关于C语言语句的叙述,错误的是___C_____。 A、C语言一行可以允许写多条语句; B、C语言语句用分号结束; C、语句一行写不下时,可以用逗号换行; D、语句一行写不下时,可在任意一空格处回车换行。 6.下面数据中不属于字符型常量的是____A____。 A、“\n” B、…\0? C、…A? D、…\t? 7.11.以下选项中,当x为大于1的奇数时,值为0的表达式______D____ 。 A、x%2==1 B、x/2 C、x%2!=0 D、x%2==0 8.C语言源程序名的后缀是____B____ 。 A 、.exe B、.C C、.obj D、.cp 9.设所有变量均为int型,则表达式(a=5,b=2,b++,a-b)的值是____D____。 A、7 B、8 C、6 D、2 10.若有说明语句:int a;float b;,以下输入语句正确的是___C_____。 A、scanf("%f%f",&a,&b); B、scanf("%f%d",&a,&b); C、scanf("%d,%f",&a,&b); D、scanf("%6.2f%6.2f",&a,&b); 11.已知int a,b; 用语句scanf(“%d%d”,&a,&b);输入a,b的值时,不能作为输入数据分隔符的是_____A___。 A、, B、空格 C、回车 D、[Tab] 12.C语言对嵌套if语句的规定是:else总是与___D___配对。 A、与之前最近的if B、第一个if C、缩进位置相同的if D、其之前最近的且尚为配对的if 13.在下面的条件语句中(其中s1和s2表示是C语言的语句),只有一个在功能上与其它三个语句不等价,它是___D___。 A、if(a)s1; else s2; B、if(a==0)s2; else s1; C、if(a!=0)s1; else s2; D、if(a==0)s1; else s2;

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语言模拟考试题2

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 1.2 根据定义和数据的输入方式,输入函数调用语句的形式为() A)scanf("%lf%lf",&d,&f) B)scanf("%f%f",&d,&f) C)scanf("3.2f%3.1f",&d,&f) D)scanf("%3.2lf%3.1lf",&d,&f) 18. 下面程序的输出是()。 #include void main() {int x=10,y=3; printf(“%d\n”,y=x/y); } (A)0(B)1(C)3(D)不确定的值 19. 下面程序运行情况是()。 #include void main() {int x=3,y=0,z=0; if(x=y+z) printf(“****”); else printf(“####”); } (A)有语法错0不能通过编译(B)输出**** (C)可以通过编译,但不能通过连接,因而不能运行(D)输出#### 20. 以下程序的输出结果是()。 #include main() {int i=10,j=10; printf("%d,%d",--i,j--); } (A)11,10(B)9,10(C)010,9(D)10,9 21. 为了避免嵌套的if-else语句的二义性,C语言规定else总是与(C)组成配对关系。 (A)缩排位置相同的if(B)在其之前未配对的if

C语言模拟题

一、单项选择题 1、以下字符中不是转义字符的是(A)。 A、'\c' B、'\b' C、'\\' D、'\a' 2、设a=12,且a定义为整型变量。执行语句a+=a-=a*=a;后a的值为(A)。 A、0 B、144 C、132 D、12 3、已定义float x=1.25,y=3.37; 根据下面的输出结果,正确的输出语句是(C). y+x=4.62,y-x=2.12 A、printf("y+x=%6.2f,y-x=%6.2f\n",y+x,y-x); B、printf("y+x=%f,y-x=%f\n",y+x,y-x); C、printf("y+x=%.2f,y-x=%.2f\n",y+x,y-x); D、printf("y+x=%5.2f,y=%5.2f\n",y+x,y-x); 4、执行下面程序段后,b的值为(A). int s=35; char t='A'; int b; b=((s&&4)&&(t<'a')); A、1 B、3 C、2 D、0 5、若k是整型,则以下程序段的执行结果是:(B) k=-3; if(k<=0) printf("####") else printf("&&&&"); A、#### B、有语法错误,无结果 C、&&&& D、####&&&& 6、设j和k都是int类型,则下面的for循环语句(D)。 for(j=0,k=0;j<=9&&k!=876;j++) scanf("%d",&k);

A、最多执行9次 B、是无限循环 C、循环体一次也不执行 D、最多执行10次 7、以下正确的描述是(A). A、只能在循环体内和switch语句内使用break语句 B、continue语句的作用是终止整个循环的执行 C、从多层嵌套的外层循环中退出时,只能使用goto语句 D、在循环体内使用break和continue语句的作用相同 8、以下能对一维数组a进行正确初始化的语句是(B)。 A、int a[10]={}; B、int a[]={0}; C、int a[10]={10*1}; D、int a[10]=(0,0,0,0,0) 9、以下正确的说法是(A). A、函数的类型决定返回值的类型 B、定义函数时,形参的类型说明可以放在函数体内 C、return后面不能为表达式 D、如果形参与实参的类型不一致,以实参类型为准 10、以下程序的输出结果为(C)。 main() {int a=1,b=2,c=3,d=4,e=5; printf("%d\n",func((a+b,b+c,c+a),(d+e))); } int func(int x,int y) { return(x+y); } A、9 B、15 C、13 D、函数调用出错 11、以下正确的说法是(D)。 A、用户若需调用标准库函数,调用前不必使用预编译命令将该函数所在文件包括到用户源文件中,系统自动去调 B、用户若需调用标准库函数,调用前必须重新定义 C、系统根本不允许用户重新定义标准库函数 D、用户可以重新定义标准库函数,若如此,该函数将失去原有含义 12、在#include命令中,文件名可用双引号或尖括号括起来,对于二者的下列说法中正确的是

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

《C语言程序设计》模拟试卷一 一、单项选择题(每题2分,共30分) 1、下列有关C语言的叙述中错误的是(D)。 A) C语句必须以分号结束 B) 任何一个C程序中有且只有一个主函数 C) 复合语句在语法上可被看作一条语句 D) C程序中对数据的任何操作都可由运算符实现 2、以下不能定义为用户标识符的是(C)。 A) MAIN B) _HJ C) 2ong D) LINE1 3、下列符号中用来表示C语言中的回车换行的是(B)。 A) \r B) \n C) \b D) \t 4、如有如下定义:int a=1,则语句printf(“%d,%d”, a, ++a);的运行结果为(B)。 A) 1, 1 B) 1, 2 C) 2, 2 D) 2, 1 5、已知ch为字符型变量,下面表达式中正确的是(A)。 A) ch=’\xff ’B) ch=’\ff ’C) ch=’ ff ’D) ch=” ff ” 6、以下能正确定义一维数组的是(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}; 7、以下语句中能正确定义变量并赋初值的是(A)。 A) char c=65; B) float f=f+1.1; C) double x=12.3e3.6; D) int m=n=2.0; 8、在执行下列程序时输入:1357924,则程序的运行结果为(D)。 main( ) { int x, y; scanf(“%2d%2d”,&x,&y); printf(“%2d”,x*y); } A) 13 B) 1357 C) 74 D) 741 9、执行下列程序段后输出的结果是(C)。

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];

相关文档
最新文档