C语言模拟题

合集下载

C语言模拟试题

C语言模拟试题

一、选择题(每小题2分,共30分)1.在程序中可以用来作为变量名的合法的标识符是:________。

A、intB、stu_1tC、2a1D、#552.以下叙述正确的是。

A、在C程序中main函数必须位于程序的最前面B、一个C程序只能有一个函数C、一个C程序有并且只能有一个main函数D、在对一个C程序进行编译的过程中,可发现注释中的拼写错误3.已知:char str1, str2[10]; 选择正确的输入语句:________。

A、scanf ("%s%c", &str1,str2);B、scanf ("%s%s", &str1,str2);C、scanf ("%c%c", &str1,str2);D、scanf ("%c%s", &str1,str2); 4.判断char型变量CH是否为小写字母的正确表达式。

A、‟a‟<=CH<=‟z‟B、(CH>=‟a‟)&(CH<=‟z‟)C、(CH>=‟a‟)&&(CH<=‟z‟)D、(…a‟<=CH)AND(…z‟>=CH)5.已知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=30B、x=20,y=30,z=30C、x=20,y=30,z=10D、x=20,y=30,z=206.设有程序段int k = 10 ;while ( k = 0 ) k = k - 1 ; 以下描述正确的是。

A、循环体语句一次也不执行。

B、循环是无限循环。

C、while 循环语句执行十次。

D、循环体语句执行一次。

7.以下程序段中与语句k=a>b?1:0;功能等价的是。

A、if (a>b) k=1;B、if (a>b) k=0;C、k=0; if (a>b) k=1;D、k=1; if(a>b) k=0;8. 如果int a=5,b=8则a>b?(a+b):(b-a)的值为(d )A、5B、8C、13D、39. 已知 int b; 则对指针变量正确的说明和初始化是:______A、int *pb=b;B、int pb=&b;C、int *pb=&b;D、int pb=b;10.C语言中while和do_while循环的主要区别是。

c语言笔试模拟题以及答案

c语言笔试模拟题以及答案

1.一、单选题:(每题1.5分,共60分)1、 C语言程序的基本单位是_______.A. 语句B. 函数C. 程序行D. 字符答案: B2、 C语言程序由( )组成A. 子程序B. 过程C. 函数D. 主程序段程序答案: C3、算法的表示方法有________。

A. 自然语言,传统流程图,N-S流程图,伪代码,计算机语言B. 高级语言,汇编语言,机器语言C. C语言,QBASIC语言,InterDevD. 图形图像法,描述法,编程法E. 计算机语言答案: A4、以下程序的输出结果是main( ){ int k=17;printf(“%d,%o,%x \n”,k,k,k);}A. 17,021,0×11B. 17,17,17C. 17,0×11,021D. 17,21,11答案: D5、下列变量定义中合法的是A. short _a=1-.le-1;B. double b=1+5e2.5;C. long do=0xfdaL;D. float 2_and=1-e-3;答案: A6、 C语言中合法的字符常量是____A. ‘\084′B. ‘\X43′C. ‘ab’D. “\0″答案: B7、下面说法中正确的是( )A. int型和long型运算先将int型转换成unsigned型,再转换B. 两个float型运算结果为double型C. 只要表达式中存在double型,所有其他类型数据都必须转D. 表达式中的类型转换与运算顺序有关答案: C8、以下不正确的叙述是A. 在C程序中,逗号运算符的优先级最低B. 在C程序中,APH和aph是两个不同的变量C. 若a和b类型相同,在计算了赋值表达式a=b后b中的值将放入a中,而b中的值不变D. 当从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输入实型数值答案: D9、设变量n为float类型,m为int类型,则以下能实现将n中的数值保留小数点后两位,第三位进行四舍五入运算的表达式是A. n=(n*100+0.5)/100.0B. m=n*100+0.5,n=m/100.0C. n=n*100+0.5/100.0D. n=(n/100+0.5)*100.0答案: B10、下列运算符中优先级最高的是A. <B. +C. &&D. !=答案: B11、若变量已正确定义并赋值,下面符合C语言语法的表达式是A. a:=b+1B. a=b=c+2C. int 18.5%3D. a=a+7:c+b答案: B12、设CH是字符型变量,其值为’A',下列表达式的值是CH=(CH > =’A'&&CH < =’Z')?(CH+32):CHA. AB. aC. zD. Z答案: B13、表达式18/4*sqrt(4.0)/8值的数据类型为A. intB. floatC. doubleD. 不确定答案: C14、在C语言中,要求运算数必须是整型的运算符是A. /B. %C. !D. >答案: B15、以下说法中正确的是A. #define和printf都是C语句B. #define是C语句,而printf不是C. printf是C语句,但#define不是D. #define和printf都不是C语句答案: D16、下面程序的输出是main(){int a=-1,b=4,k;k=(a++<=0)&&(!(b–<=0));printf(“%d%d%d%\n”,k,a,b);}A. 0 0 3B. 0 1 2C. 1 0 3D. 1 1 2答案: C17、设有:int a=1,b=2,c=3,d=4,m=2,n=2;执行 (m=a > b)&&(n=c > d)后n的值是A. 1B. 2C. 3D. 4答案: B18、若有条件表达式 (exp)?a++:b–,则以下表达式中能完全等价于表达式(exp)的是A. (exp==0B. (exp!=0)C. (exp==1)D. (exp!=1)答案: B19、为表示关系X≥Y≥Z应使用C语言表达式:__A. (X > =Y)&&(Y > =Z)B. (X > =Y)and(Y > =Z)C. (X≥ Y≥ Z)D. (X≥ Y)&(Y≥ Z)答案: A20、能正确表示逻辑关系:”a ≥ =10或a ≤ 0″的C语言表达式是A. a > =10 or a< =0B. a > =0||a < =10C. a > =10 && a < =0D. a < =0 || a>=10答案: D21、下面的程序是______main(){ int x=3,y=0,z=0;if (x==y+z) printf(“****”);else printf(“####”);}A. 有语法错误不能过通过编译B. 输出****C. 可能通过编译,但是不能通过连接,因而不能运行D. 输出####答案: D22、执行下面语句后的输出为( )int i= -1;if (i < =0)printf(“****\n”)else printf(“%%%%\n”)A. ****B. %%%%C. %%%%CD. 有语法错,不能执行答案: D23、若运行以下程序时,从键盘输入 ADescriptor < CR > ( < CR > 表示回车),则下面程序的运行结果是#include <stdio.h>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=7B. v0=8,v1=4,v2=8C. v0=11,v1=4,v2=11D. v0=12,v1=4,v2=12答案: D24、以下程序的输出结果是main( ){ int n=4;while(n–)printf(“%d “,–n);}A. 2 0B. 3 1C. 3 2 1D. 2 1 0答案: A25、有一堆零件(100到200之间),如果分成4个零件一组的若干组,则多2个零件;若分成7个零件一组,则多3个零件;若分成9个零件一组,则多5个零件。

C语言程序设计模拟题

C语言程序设计模拟题

C语言程序设计模拟题一、选择题1.设x和y均为int型变量,则以下语句:x+=y;y=x-y;x-=y;的功能是()A、把x和y按从大到小排列B、把x和y按从小到大排列C、无确定结果D、交换x和y中的值2.若有以下程序段:int c1=1,c2=2,c3;c3=1.0/c2*c1;则执行后,c3中的值是()A、0 B、0.5 C、1 D、23.有以下程序#include<stdio.h>main(){char *s="ABC";do{printf("%d",*s%10);s++;}while(*s);}注意,字母A的ASCII码值为65。

程序运行后的输出结果是()A.5670 B.656667 C.567 D.ABC 4.有以下程序#include <stdio.h>main(){int i=5;do{if(i%3==1)if(i%5==2){printf("*%d",i);break;}i++;} while(i!=0);printf("\n");}程序的运行结果是()A.*7 B.*3*5 C.*5 D.*2*65.设i和x都是int类型,则for循环语句()。

for(i=0,x=0;i<=9&&x!=876;i++) scanf("%d",&x);A. 最多执行10次B. 最多执行9次C. 是无限循环D. 循环体一次也不执行6.下述for循环语句()。

int i,k;for(i=0,k=-1;k=1;i++,k++) printf("* * * *");A. 判断循环结束的条件非法B. 是无限循环C. 只循环一次D. 一次也不循环7. 引用共用体变量中的字符型变量,以下正确的是()A. a.chB. a.f C b.ch.8.以下共用体定义错误的是()A. B Cunion union data union data{ int i; {int i; {int i;char ch; char ch; char ch;float f; float f; float f;}a,b,c; } }union data a,b,c9.若指针p已正确定义,要使p指向两个连续的整型动态存储单元,不正确的语句是()。

C语言模拟题

C语言模拟题

一.D A C A A B C B A B A A A D C二.TFTFT TFFTF TFFFT FFTTF三. 3 4,4 1 0 0 递归 b 20四1.【参考代码】double y=0;int i;for(i=0; i<=m; i++)y+=1.0/(i+5);return(y);2.【参考代码】int i,max,min;max=min=a[0];for(i=1;i<n;i++)if(a[i]>max) max=a[i];else if(a[i]<min) min=a[i];return(max*min);五1.【参考答案】for (k=4; k<=n; k++)【参考答案】a=b;【参考答案】return d;2.【参考答案】void fun(char *str, char ch )【参考答案】if ( *str == '\0' )【参考答案】str[1] = '\0';六1.【参考答案】i=1【参考答案】200【参考答案】f12.【参考答案】a,bb,a【参考答案】x>yy<x一单选1.下面四个选项中,均是不合法的用户标识符的选项是()。

A、float la0 _AB、A P_0 doC、_123 temp intD、b-a goto int2.表达式18/4*sqrt(4.0)/8值的数据类型为()。

A、doubleB、floatC、intD、不确定3.设:long w=65535,t=7654321;根据下面的输出结果,正确的程序段是( ).w=65535,t=7654321endA、printf("w=%5d,t=%7d\n",w,t);printf("%s","end');B、printf("w=%5ld,t=%7ld",w,t);printf("%c","end");C、printf("w=%5ld,t=%7ld\n",w,t);printf("%s","end");D、printf("w=%5u,t=%7u\n",w,t);printf( "end");4.选择结构中的条件与循环结构中循环成立的条件,在写法上可以是任一表达式,但其值只能被判断为“真”或“假”。

C语言模拟试题

C语言模拟试题
if(n==1) a=1;
else a= n+sub(n-1);
return(a); }
4.int f(int x,int y)
{ return((y-x)*x); }
main()
{ int a=3,b=4,c=5,d;
d=f(f(3,4),f(3,5));
printf("%d\n",d);
}
5. main( )
else if(i= =j) sum=sum+a[i][j];
else if(i+j= =4) sum=sum+a[i][j];
if(min>a[i][j]) min=a[i][j];
}
printf(“sum=%d,min=%d”,sum,min);
}
3.#include <stdio.h>
main( )
C)structD)struct
{ int num; { int num;
float age; float age; } student;
}std1; struct student std1;
二、判断题(本大题10分,每小题1分)-
1.在每个C文件中都必须并且只能有一个main函数。()
2.在C语言中,整型数据与实型数据在任何情况下都可以通用。()
3.在C语言程序中,happy是正确的标识符。()
4.在if语句中,if子句与else子句都可以单独使用,构成了if语句的两种缺省形式。()
5. C语言规定,简单变量做实参时,与其对应的形参之间是双向的值传递。()
6.数组在定义时要求指定数组类型,数组名及数组长度,其中表示数组长度的表达式可以是任意类型的常量表达式。()

C语言模拟题

C语言模拟题

C语言模拟试题(一)一、选择题1、以下字符中不是转义字符的是( A )。

A、 '\c'B、 '\b'C、 '\\'D、 '\a'2、设 a=12,且 a定义为整型变量。

执行语句a+=a-=a*=a;后 a的值为( A)。

A、 0B、 144C、 132D、 123、已定义 float x=,y=;依照下面的输出结果,正确的输出语句是(C ).y+x=,y-x=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);,lC、 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、 1B、 3C、 2D、 05 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)。

C语言-模拟考试题

C语言-模拟考试题

C语言模拟试题选择题(1)1.若有下列定义:char c[3],*pc=c; 则对c数组元素地址的正确引用是:A. &c[3]B. pc[3]C. pc+2D. &c2.执行语句printf(“%d\n”,strlen(“abc\x41\n”));输出结果是:A. 5B. 7C. 3D. 43设有下列程序段,则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. 0B. 1C. 2D. 35若有定义:int a[3][4]={{1,2},{0},{4,6,8,10}};则执行此语句后,a[2][1]得到的初值是:A. 4B. 2C. 6D. 86若有int a=1,b=4,c=3,d=2;语句,则执行完该语句后,条件表达式a<b?a:c<d?c:d的值为:A. 1B. 2C. 3D. 47putchar()函数可以向终端输出一个: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<b)?c=a:c=b;10若已定义x和y为double类型,则表达式x=1,y=x+3/2的值是:A. 1B. 2C. 2.0D. 2.511以下语句或语句组中,能正确进行字符串赋值的是: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. 1B. 2C. 3D. 无确定值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 4B. 5,4C. 5 b=414以下运算符中,优先级最高的是: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+iD. *(&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. 4B. 5C. 6D. 719以下程序的运行结果是:#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,1B. 5,0,0C. 4,1,0D. 1,5,020下面程序的运行结果是:#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,15B. 14,16C. 16,18D. 15,1421以下程序的输出结果是:#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. 3B. 5C. 4D. 622以下程序运行后的输出结果是?#include "stdio.h"#define SQR(x) x*xmain(){ int a,k=3;a=++SQR(k+1);printf("%d\n",a); }A. 7B. 8C. 9D. 1023执行语句for(i=10;i>0;i--);后,变量i的值为:A. 10B. 0C. 9D. 124下列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).dataB. (*p).xC. p->data.xD. p.data.x29循环语句的循环体中执行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. _1B. AaBcC. a_bD. a-b4若有定义: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<stdio.h>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);}当执行程序时,按下列方式输入数据:(<CR>代表回车)12<CR>34<CR>则输出结果是A. 1234B. 12C. 123D. 12346以i关于C语言数据类型使用的叙述中错误的是A. 若要准确无误差的表示自然数,应使用整数类型B. 若要保存带有多位小数的数据,应使用双精度类型C. 若要处理如“人员信息”等含有不同类型的相关数据,应自定义结构体类型D. 若只处理“真”和“假”两种逻辑值,应使用逻辑类型7若a是数值类型,则逻辑表达式(a==1)||(a!=1)的值是A. 1B. 0C. 2D. 不知道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<b)if(a<c)k=a;else k=c;elseif(b<c) k=b;else k=c;10以下选项中与上述if语句等价的语句是A. k=(a<b)?a:b;k=(b<c)?b:c;B. k=(a<b)?((b<c)?a:b):((b>c)?b:c);C. k=(a<b)?((a<c)?a:):((b<c)?b:c)D. k=(a<b)?a:b;k=(a<c)?a:c;11有以下程序#include<s七dio.h>main(){int i,j,m=1;for(i=1;i<3;i++){for(j=3;j>0;j--){if(i*j)>3)break;m=i*j;}}printf("m=%d\n",m);}程序运行后的输出结果是A. m=6B. m=4C. m=2D. m=512有以下程序#include<stdio.h>main(){int a=l,b=2;for(;a<8;a++) {b+=a;a+=2;}printf("%d,%d\n",a,b);}程序运行后的输出结果是A. 9,18B. 8,11C. 7,11D. 10,1413有以下程序,其中k的初值为八进制数#include <stdio.h>main(){int k=011;printf("%d\n",k++);}程序运行后的输出结果是A. 12B. 11C. 10D. 914以下关于return语句的叙述中正确的是A. 一个自定义函数中必须有一条return语句B. 一个自定义函数中可以根据不同情况设置多条return语句C. 定义成void类型的函数中可以有带返回值的return语句D. 没有return语句的自定义函数在执行结束时不能返回到调用处15下列语句组中,正确的是A. char *s;s="Olympic";B. char s[7];s="Olympic";C. char *s;s={"Olympic"};D. char s[7];s={"Olympic"};16下列选项中,能正确定义数组的语句是A. int num[0..2008];B. int num[];C. int N=2008;int num[N];D. #define N 2008int num[N];17有以下程序#include <stdio.h>void fun(char *c,int d){ *c=*c+1;d=d+1;printf("%c,%c,",*c,d);}main(){char b='a',a='A';fun(&b,a);printf("%e,%e\n",b,a);}程序运行后的输出结果是A. b,B,b,AB. b,B,B,AC. a,B,B,aD. a,B,a,B18若有定义int(*Pt)[3];,则下列说法正确的是[D]A. 定义了基类型为int的三个指针变量B. 定义了基类型为int的具有三个元素的指针数组ptC. 定义了一个名为*pt、具有三个元素的整型数组D. 定义了一个名为pt的指针变量,它可以指向每行有三个整数元素的二维数组19设有定义double a[10],*s=a;,以下能够代表数组元素a[3]的是A. (*s)[3]B. *(s+3)C. *s[3]D. *s+320有以下程序#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);}程序运行后的输出结果是A. 6B. 10C. 11D. 1521有以下程序#include <stdio.h>main(){int b[3][3]={0,1,2,0,1,2,0,1,2},i,j,t=1;for(i=0;i<3;i++)for(j=i;j<=1;j++) t+=b[i][b[j][i]];printf("%d\n",t);}程序运行后的输出结果是A. 1B. 3C. 2D. 522若有以下定义和语句char s1[10]="abcd!",*s2="\n123\\";printf("%d %d\n", strlen(s1),strlen(s2));则输出结果是A. 5 5B. 10 5C. 10 7D. 5 823有以下程序#include <stdio.h>#define N 8void fun(int *x,int i){*x=*(x+i);}main(){int a[N]={1,2,3,4,5,6,7,8},i;fun(a,2);for(i=0;i<N/2;i++)printf("%d",a[i]);printf("\n");}程序运行后的输出结果是A. 1313B. 2234C. 3234D. 123424有以下程序#include <stdio.h>int f(int t[],int n);main(){int a[4]={1,2,3,4},s;s=f(a,4); printf("%d\n",s);}int f(int t[],int n){ if(n>0) return t[n-1]+f(t,n-1); else return 0;}程序运行后的输出结果是A. 4B. 10C. 14D. 625有以下程序#include <stdio.h>int fun(){ static int x=1;x=x*2; return x;}main(){int i,s=1;for(i=1;i<=2;i++) s=fun();printf("%d\n",s);}程序运行后的输出结果是A. 0B. 1C. 4D. 826有以下程序#include <stdio.h>#define SUB(a) (a)-(a)main(){ int a=2,b=3,c=5,d;d=SUB(a+b)*c;printf("%d\n",d);}程序运行后的输出结果是A. 0B. -12C. -20D. 1027设有定义:struct complex{ int real,unreal;} data1={1,8},data2;则以下赋值语句中错误的是A. data2=data1;B. data2=(2,6)C. data2.real=data1.real;D. data2.real=data1.unreal;28有以下程序#include <stdio.h>#include <string.h>struct A{ int a; char b[10]; double c;};void f(struct A t);main(){ struct A a={1001,"ZhangDa",1098.0};f(a); printf("%d,%s,%6.1f\n",a.a,a.b,a.c);}void f(struct A t){ t.a=1002; strcpy(t.b,"ChangRong");t.c=1202.0;}程序运行后的输出结果是A. 1001,zhangDa,1098.0B. 1002,changRong,1202.0C. 1001,ehangRong,1098.0D. 1002,ZhangDa,1202.029有以下定义和语句struct workers{ int num;char name[20];char c;struct{int day; int month; int year;} s;};struct workers w,*pw;pw=&w;能给w中year成员赋1980的语句是A. *pw.year=1980;B. w.year=1980;C. pw->year=1980;D. w.s.year=1980;30有以下程序#include <stdio.h>main(){ int a=2,b=2,c=2;printf("%d\n",a/b&c);}程序运行后的输出结果是A. 0B. 1C. 2D. 331有以下程序#include <stdio.h>main(){ FILE *fp;char str[10];fp=fopen("myfile.dat","w");fputs("abc",fp);fclose(fp);fopen("myfile.data","a++");fprintf(fp,"%d",28);rewind(fp);fscanf(fp,"%s",str); puts(str);fclose(fp);}程序运行后的输出结果是A. abcB. 28cC. 28D.因类型不一致而出错选择题(3)1、以下叙述中正确的是:A. C程序中的注释只能出现在程序的开始位置和语句的后面B. C程序书写格式严格,要求一行内只能写一个语句C. C程序书写格式自由,一个语句可以写在多行上D. 用C语言编写的程序只能放在一个程序文件中2以下叙述中正确的是:A. C程序中的注释只能出现在程序的开始位置和语句的后面B. C程序书写格式严格,要求一行内只能写一个语句C. C程序书写格式自由,一个语句可以写在多行上D. 用C语言编写的程序只能放在一个程序文件中3以下选项中不属于字符常量的是:A. ′C′B. "C"C. ′\xCC′D. ′\072′4设变量已正确定义并赋值,以下正确的表达式是:A. x=y*5=x+zB. int(15.8%5)C. x=y+z+5,++yD. x=25%5.05以下定义语句中正确的是:A. int a=b=0;B. char A=65+1,b=′b′;C. float a=1,*b=&a,*c=&b;D. double a=0.0;b=1.1;6有以下程序段char ch; int x;ch=′A′; x=20;printf("%c,%d,",ch,ch,x); printf("x=%d\n",x,ch);已知字符a的ASCII码值为97,则执行上述程序段后输出结果是:A. 因变量类型与格式描述符的类型不匹配输出无定值B. 输出项与格式描述符个数不符,输出为零值或不定值C. A,65,12x=20D. A,65,x=207已知字母A的ASCII码值为65,若变量kk为char型,以下不能正确判断出kk中的值为大写字母的表达式是:A. kk>=′A′&& kk<=′Z′B. !(kk>=′A′||kk<=′Z′)C. (kk+32)>=′a′&&(kk+32)<=′Z′D. isalpha(kk)&&(kk<91)8当变量c的值不为2、4、6时,值为"真"的表达式是:A. (c==2)||(c==4)||(c==6)B. (c>=2&& c<=6)&&((c==3)||(c==5))C. (c>=2&&c<=6)&&!(c%2)D. (c>=2&& c<=6)&&(c%2!=1)9以下不构成无限循环的语句或语句组是:A. n=0; do{++n;}while(n<=0);B. n=0; while(1){n++;}C. n=10; while(n);{n--;}D. for(n=0,i=1; ;i++)n+=i;10以下错误的定义语句是:A. int x[][3]={{0},{1},{1,2,3}};B. int x[4][3]={{1,2,3},{1,2,3},{1,2,3},{1,2,3}};C. int x[4][]={{1,2,3},{1,2,3},{1,2,3},{1,2,3}};D. int x[][3]={1,2,3,4};11设有如下程序段char s[20]="Beijing",*p;p=s;则执行p=s;语句后,以下叙述正确的是:A. 可以用*p表示s[0]B. s数组中元素的个数和p所指字符串长度相等C. s和p都是指针变量D. )数组s中的内容和指针变量p中的内容相同12若有定义:int x[4][5];,以下选项中对x数组元素正确引用的是:A. x[4][0]B. x[3][5]C. x[4][4]D. x[2>4][!3]13有定义语句:char str[10];,若要从终端给str输入8个字符,错误的输入语句是:A. gets(&s[0]);B. scanf("%s",s+1);C. gets(s);D. scanf("%s",s[1]);14以下叙述中错误的是:A. 在程序中凡是以"#"开始的语句行都是预处理命令行B. 预处理命令行的最后不能以分号表示结束C. #define MAX是合法的宏定义命令行D. C程序对预处理命令行的处理是在程序执行的过程中进行的15以下结构体类型说明和变量定义中正确的是A. typedef strct{int n; char c;}REC;REC t1,t2;B. typedef strct{int n; char c;};REC t1,t2;C. strct{int n; char c;}REC;REC t1,t2;D. typedef strct REC;{int n=0; char c;}t1,t2;16以下叙述中错误的是:A. gets函数用于从终端读入字符串B. getchar函数用于从磁盘文件读入字符C. fputs函数用于把字符串输出到文件D. fwrite函数用于以二进制形式输出数据到文件17变量a中的数据用二进制表示的形式是01011101,变量b中的数据用二进制表示的形式是11110000。

c语言试题带答案

c语言试题带答案

C语言模拟题二C语言模拟题二一、单项选择题1.程序中定义以下宏#define S(a,b)a*b若定义int area;且令area=S(3+1,3+4),则变量area的值为_________A 10B 12C 21D 282.正确的标识符是_________A ifB a=2C a.3D a_33.表达式1&3&5&7的值为_________A 1B 3C 5D 74.语句printf(″s\\t″)的输出结果为_________A s\\tB s\tC s\D s5. 执行下列语句后,sum变量的值是_________int sum=0;for(int i=0;i<10;i++,sum+=i);A 45B 55C 0D 编译错误6.已知有共用体变量data1定义如下:union data{ int i;char ch;float f;} data1;则变量data1所占的内存存储空间可表示为_________A sizeof(int)B sizeof(char)C sizeof(float)Dsizeof(int)+sizeof(char)+sizeof(float)7.若fp是指向某文件的指针,且feof(fp)的返回值是非零值,则表示_________A 已读到此文件末尾B 未读到此文件的末尾C 此文件已关闭D此文件尚未被打开8.以下c语言函数声明中,不正确的是_________A void fun (int x,int y);B fun (int x,int y);C int fun (int x,y);D char *fun (char *s);9.若有语句if(x==0) y=5;则与条件x==0等价的表达式为_________A xB !xC x!=1D 以上都不对10.在执行以下程序时,如果从键盘上输入:ABCdef<回车>,则输出为A)ABCdef B)abcDEF C)abc D)DEF#includemain( ){ char ch;while((ch=getchar( ))!='\n'){ if(ch>='A' && ch<='Z')ch=ch+32;else if(ch>='a' && ch<='z')ch=ch-32;printf("%c",ch);}printf("\n");}11.下面不能正确进行字符串赋值操作的语句是_______A)char s[5]={"ABCDE"};B)char s[5]={'A'、'B'、'C'、'D'、'E'};C) char *s;s="ABCDEF";D)char *s;scanf("%s",s);12.若x=4,则x*=x+2的值为_________A 36B 24C 18D 2013.函数调用语句func((exp1,exp2),(exp3,exp4,exp5));中,实参的个数为_________A 1B 2C 4D 514.设a为5,执行下列语句后,b的值不为2的是_________A b=a/2B b=6-(--a)C b=a%2D b=a<32?2:115.假设指针p1已经指向了某个整型变量,要使指针p2也指向同一个变量,则下面各项中正确的是_________A p2=**p1B p2=*&p1C p2=*p1D p2=&*p116.以下运算符中,运算对象必须是整型的是_________A /B %=C != D〈=17.以下关于typedef的叙述中错误的是_________A用typedef可以增加新的类型B用typedef可以定义各种类型名,但不能用来定义变量C用typedef只是将已有的类型用新的标识符来代表D使用typedef有利于程序的通用和移植18.若执行完成下列语句:int a=3,b=6,c;c=a∧b<<2;则变量c的二进制值为_________A 00011100B 00010100C 0001000D 0001101119.以下关于宏替换的叙述不正确的是_________A宏替换只是字符替换B宏名无类型C宏替换不占用运行时间D宏替换不占用编译时间20. 以下对枚举类型名的定义中正确的是_________A enum s={a,b,c}B enum s {a=9,b=2,c}C enum s={′a′,′b′,′c′}D enum s{′a′,′b′,′c′}二、判断题1.若有说明int c;则while (c=getchar());是错误的C语句。

C语言程序设计模拟题

C语言程序设计模拟题

C语言程序设计模拟题1.由C语言编写的代码程序()。

A.可直接执行B.是一个源程序C.经过编译即可执行D.经过编译解释才能执行【答案】B。

解析:C语言编写的代码程序是一个源程序,C语言编写的代码程序需要经过编译、连接、解释才能执行。

2.按照C语言规定的用户标识符命名规则,不能出现在标识符中的是()。

A.大写字母B.中划线C.数字字符D.下划线【答案】B。

解析:C语言的自定义标识符只能有字母、数字、下划线。

3.下列选项中,不能用作标识符的是()。

A._1234_B._1_2C.int_2_D.2_int_【答案】D。

解析:标识符只能以字母或下划线开头。

4.以下选项中合法的用户标识符是()。

A.longB._2TestC.3DmaxD.A.dat【答案】B。

解析:A为关键字,C开头只能是字母或下划线,D标识符中只能有字母、数字、下划线。

5.以下不能定义为用户标识符的是()。

A.MainB._0C._intD.sizeof【答案】D。

解析:sizeof为关键字,不能用作用户标识符。

6.下列定义变量的语句错误的是()。

A.int _int;B.double int_;C.char For;D.float US$;【答案】D。

解析:标识符只能有字母、数字、下划线。

7.在C语言中,合法的实型常数是()。

A.5E2.0B.E-3C.2E0D.1.3E【答案】C。

解析:实型常量e的前面要有数,e的后面为整数。

8.在C语言中,合法的实型常数是()。

A.1.2E0.5B.3.14159EC.5E-3D.E15【答案】C。

解析:实型常量e的前面要有数,e的后面为整数。

9.以下选项中,不能作为合法常量的是()。

A.1.234e04B.1.234e0.4C.1.234e+4D.1.234e0【答案】B。

解析:实型常量e的前面要有数,e的后面为整数。

10.以下不合法的数值常量是()。

A.011B.1e1C.8.0E0.5D.0xab【答案】C。

c语言模拟考试题及答案

c语言模拟考试题及答案

c语言模拟考试题及答案一、选择题(每题2分,共20分)1. 下列哪个选项是C语言中的合法标识符?A. 2variableB. variable2C. variable-2D. variable$2答案:B2. C语言中,哪个关键字用于声明一个变量?A. defineB. varC. letD. int答案:D3. 下列哪个选项是C语言中的整型常量?A. 0x1AB. 1.23C. 1e2D. "123"答案:A4. 在C语言中,哪个函数用于计算字符串的长度?A. strlen()B. length()C. size()D. lengthof()5. 下列哪个选项是C语言中的逻辑运算符?A. &&B. ||C. !D. A和B答案:D6. C语言中,哪个关键字用于声明一个函数?A. functionB. defC. defineD. void答案:D7. 在C语言中,哪个函数用于将字符串复制到另一个字符串?A. strcpy()B. copy()C. duplicate()D. copystr()答案:A8. 下列哪个选项是C语言中的浮点型常量?A. 3.14B. 3.14e2C. 3.14E2D. A和C答案:D9. 在C语言中,哪个关键字用于声明一个数组?B. listC. tableD. int[]答案:D10. 下列哪个选项是C语言中的位运算符?A. &B. |C. ^D. A和B答案:D二、填空题(每题2分,共20分)1. 在C语言中,使用________关键字可以定义一个宏。

答案:#define2. C语言中,使用________函数可以将一个浮点数转换为字符串。

答案:sprintf3. 在C语言中,使用________关键字可以跳过当前循环的剩余部分,继续下一次循环。

答案:continue4. C语言中,使用________关键字可以立即退出循环。

c语言程序设计模拟题

c语言程序设计模拟题

c语言程序设计模拟题c语言程序设计模拟题一、选择题(1)能够将高级语言程序转换成目标语言程序的就是__c____。

a)调试程序b)解释程序c)编译程序d)编辑程序(2)__a____是构成c语言程序的基本单位。

a)函数b)过程c)子程序d)子例程(3)可以在c语言中用作用户标识符的就是__b___。

a)voidb)as_b3c)ford)2cdefine_123-abcdowordifcassig(4)若有以下类型说明语句:charw;intx;floaty,z;则表达式w*x+z-y的结果为__d___类型。

a)floatb)charc)intd)double(5)main(){floatx=123.456;printf(\}以上程序输出的结果是___d___。

a)123.4b)123.5c)123.45d)123.46(6)下面语句的输入结果就是___c___。

printf(\a)14b)8c)5d)输入项不合法,并无正常输入(7)以下程序的输入结果就是__b____。

main(){inta=0,b=0,c=0;if(++a>0|++b>0)++c;printf(\}a)a=0,b=0,c=0b)a=1,b=1,c=1c)a=1,b=0,c=1d)a=0,b=1,c=1(8)以下程序的输入结果就是__b____。

main(){inti;for(i=1;i+1;i++){if(i>4){printf(\}printf(\}a)55b)56c)程序错误,没有输出d)循环条件永远为真,死循环(9)下列程序的输出结果是___a___。

#definea100main(){inti=0,sum=0;do{if(i==(i/2)*2)continue;sum+=i;}while(++iprintf(\}a)2500b)2050c)4d)0(10)下列程序的输出结果是__d____。

main(){inti=3;switch(i){case1:case2:printf(\case3:case4:break;default:printf(\}}a)0b)3c)okd)没任何输入(11)以下程序执行后的输入结果就是__c____。

C语言模拟试题1

C语言模拟试题1
c%c”,&c1,&c2,&c3)输入a└┘b└┘c时,变量c1,c2,c3的值分别为()
A.‘a’,’b’,’c’ C ‘a’,’└┘’,’b’ 4、 putchar 函数可以向终端输出一个()
B.‘a’,’b’,’└┘’ D.‘a’,‘└┘’,’c’
相关有误语法和算法的纠正。
#include<stdio.h>
int div(int m,int n)
int mul(int m,int n)
void main()
{
int a,b,c,mul1,mul2,div1,div2;
print(“请输入三个整数:\n”);
scanf(“%d%d%d”,a,b,c);
c:循环体语句一次也不执行
d:循环体语句执行一次
8、 下面有关 for 循环的正确描述为()。
a:for 循环只能用于循环次数已经确定的情况。
b:for 循环是先执行循环体语句,再判断表达式。
c:在 for 循环中,不能用 break 语句跳出循环体。
d:在 for 循环的循环体语句中,可以包含多条语句,但必须用大括弧括起来。
试题一
一、 选择题(每小题 2 分,共 20 题) 1、下列变量说明中,正确的是()
a、char a b c ;
b、char a; b; c;
c、int x;z;
d、int x,z;
2、设 x=2.5,y=4.7,a=7,算术表达式 x+a%3*(int)(x+y)%2/4 的值为()
a、2.5
b、7
b:int t [10] d:int [10];
14、下面正确的初始化语句是()。
a:a[]=(1,2,2); c:b[5]={1};

C语言考试模拟试题

C语言考试模拟试题

1 y 0 1 1. 编程,从键盘输入 x 的值,输出
x0 x0 x0
Hale Waihona Puke 的值,要求用 if 语句实现。 2. 编程,求 1!+2!+3!+...+n!的值。 3. 编程,从键盘任意输入 10 个数,用起泡法对这 10 个数排序。
9. 14.要求字符数组 a 中字符串的长度可用
10. 关系表达式 0<y<1,用 C 语言的表达式为 (y>0&&y<1) 11. 若有如下定义,int a[10];则 a 数组元素的下标上限是 9 12. 若已知 a=10,b=20,则表达式!a<b 的值为__1___ 13. 设 int a=5,b=6,表达式(++a==b--)?++a:--b 的值是_7____
一、选择题 1. 关于 C 语言的主函数描述正确的是 A)C 程序可以有多个 main 函数 能有一个 main 函数 C)C 程序可以没有 main 函数 main 函数开始执行
B)C 程序必有一个而且只 D)C 程序的执行不一定在
2. C 语言中用于结构化程序设计的 3 种基本结构是 A) 顺序结构、 选择结构、 循环结构 C)for,while,do-while 3. C 语言中最简单的数据类型包括 A)整型、实型、逻辑型 C)整型、字符型、逻辑型 B)整型、实型、字符型 D)字符型、实型、逻辑型 B) if,switch,break D)if,for,continue
14.
表达式 3.6-5/2+1.2+5%2 的值是__3.8___。
15. 以下程序输出的结果是__1___。 main() { int a=5,b=4; d=(a>b>c); printf("%d\n",d); } 16. 若 a=1,b=2,则表达式 a>b?a:b+1 的值为 3 17. 已知字母 A 在 ASCII 代码中的序号为 65,下列程序的输出结果 是 main ( {char 。 ) cl=’A’c2=’Y’ ;

C语言模拟复习题及答案

C语言模拟复习题及答案

一、选择题1. 以下叙述错误的是 A 。

A.C程序在书写时,有严格的缩进要求,否则不能编译通过B.一个C程序只能有一个主函数C.一个C程序可以包含多个不同名的函数D.C程序的主函数必须用main作为函数名2. 下列程序段的输出结果是 4 3 2 1 。

void fun(int *x, int *y){ printf("%d %d ", *x, *y); *x=1; *y=2;}main(){ int x=3,y=4;fun(&y,&x);printf("%d %d",x, y); }3. 若有定义语句:int x=3,y=2,z;在其后执行语句z=0.9+x/y;则z 的值为 1 。

4. 有以下程序#include <stdio.h>main(){ int a;scanf("%d",&a);if(a++<8) printf("%d\n",a);else printf("%d\n",a--); }程序运行时键盘输入8<回车>,则输出的结果是9 。

5. 以下定义整型3行4列的二维数组a并初始化不正确的是C 。

A.int a[3][4]={0} B.int a[][4]={0,1,2,3,4,5,6,7,8,9,10,11,12}C.int a[3][]={0,1,2,3,4,5,6,7,8,9,10,11,12} D.int a[3][4]={{1,2},{1,2,3},{1,2,3,4}}6. 有以下程序#include <stdio.h>main(){ int c=0,k;for (k=1;k<3;k++)switch (k){ default: c+=k;case 2: c++;break;case 4: c+=2;break;}printf(“%d\n”,c); }程序运行后的输出结果是 3 。

C语言考试模拟题

C语言考试模拟题
{ int a=3,b=5,c;
c=2*MIN(a,b);
printf(“%d”,c);
}
A 3 B 5 C 10 D 6
19、 语句k=(m=3,n=++m);运行后,变量k,m,n的值依次为(4,4,4 )
A 5,6,5 B 6,6,6 C 5,5,6 D 6,6,5
B”#DEFINE PRICE=30 “定义了与30等价的符号常量PRICE,
C 一个源程序只能有一个编译预处理命令行,
D编译预处理命令行都必须以”#”开头.
13、 以下叙述错误的是( )
A一个指针变量只能指向类型相同的变量.
B存放地址的变量称为指针变量.
C NULL可以赋值给任何类型的指针变量
#include<stdio.h>
int a=2,b=3,c=5;
int fun(int a,int b)
{ int c;
c=a>b?a,b;
return(c);
}
main()
{
int a=6;
printf("%d",fun(fun(a,b),c));
}
A、6,5 B、3,5 C、6 D、5
30. 已定义 int m= ‘A’; 则正确的表达式是()。
A. 2*m=m++ B. m%3 C. m=m-m=m-5 D. m=int(-3.2)
31. 以下程序运行的结果是()。
Void main()
{ int x,y,z,a;
x=y=z=1; a=15;
20、 若以定义double y ,从键盘输入一个值赋给变量y,则正确的函数调用是( )

C语言模拟习题

C语言模拟习题
D)(x<=-10)||(x>=-5)&&(x<=0)||(x>=100)
7.程序段如下
int k=0;
while(k++<=2); printf("last=%d\n",k);
则执行结果是last= 。
printf(“%d”,a[i]);
}
四、写出下面程序的执行结果(本大题24分,每小题4分)
1.#include<stdio.h>
main( )
{ char c=‘A’+‘10’-‘5’;
printf(“c=%c\n”,c); }
2.#include<stdio.h>
printf(“\n”);
for (j=1;j<=9;j++)
for(i=1; _(1)_____)
{t=a[i]; a[i]=a[i+1]; __(3)__ ;}
printf(“the sorted numbers: \n”);
for ( i=1; i<11; i++)
if(__(3)___) printf(“%d\n”, m); } }
2.. 用起泡法对十个数由大到小排序。
main( )
{ int a[11], i, j, t;
printf(“input 10 numbers: \n”);
for(i=1;i<11;i++)
scanf(“%d”,&a[i]);
A)(x<=-10)||(x>=-5)&&(x<=0)||(x>=100)

c语言模拟试题

c语言模拟试题

c语言模拟试题C语言模拟试题一、选择题(每题2分,共20分)1. 以下哪个是C语言的关键字?A. intB. IntegerC. INTD. integer2. C语言中,用于定义一个整型变量的关键字是:A. varB. defineC. letD. int3. 以下哪个不是C语言的标准输入输出库函数?A. printf()B. scanf()C. coutD. getchar()4. C语言中,用于实现循环的关键字是:A. loopB. whileC. doD. repeat5. 在C语言中,以下哪个是正确的数组声明语句?A. int numbers[];B. int numbers(10);C. int numbers = 10;D. int numbers = {1, 2, 3};6. 以下哪个是C语言中正确的字符串定义方式?A. string str = "Hello";B. char str[] = "Hello";C. char str = "Hello";D. string str[] = "Hello";7. C语言中,用于定义函数的关键字是:A. functionB. funcC. defD. void8. 以下哪个是C语言中正确的条件语句?A. if (x == y)B. switch (x)C. case x:D. default9. C语言中,用于定义指针的符号是:A. &B. *C. ^D. %10. 在C语言中,以下哪个是正确的结构体声明语句?A. struct Student {int age; char name[50];};B. struct {int age; char name[50]} student;C. type Student {int age; char name[50]};D. Student struct {int age; char name[50]};二、填空题(每空2分,共20分)11. 在C语言中,一个变量的声明必须在____的开始。

C语言模拟试题

C语言模拟试题

(1)一:选择题(本题共15小题,满分30分)(1).以下叙述正确的是BA)C语言程序是由过程和函数组成的B)C语言函数可以嵌套调用,例如:fun(fun(x))C)C语言函数不可以单独编译D)C语言中除了main函数,其他函数不可作为单独文件形式存在(2)以下C语言用户标识符中,不合法的是DA)_1B)AaBcC)a_bD)a—b(3)若有定义:doublea=22;inti=0,k=18;,则不符合C语言规定的赋值语句是CA)a=a++,i++;B)i=(a+k)<=(i+k);C)i=a%11;D)i=!a;(4)以下程序的输出结果是(B)。

main(){intx=2,y=-1,z=2;if(x<y)if(y<0)z=0;elsez=z+1;printf(“%d\n”,z);}(5).设inta=9,b=20;则printf(″%d,%d\n″,a--,--b);的输出结果是(C)A.9,19B.9,20C.10,19D.10,20(6)有以下程序#include"stdio.h"main(){inti,j,m=1;for(i=1;i<3;i++){for(j=3;j>0;j--){if((i*j)>3)break;m*=i*j;}}printf("m=%d\n",m);}程序运行后的输出结果是AA)m=6B)m=2C)m=4D)m=5(7)有以下程序D#include"stdio.h"main(){inta=1;intb=2;for(;a<8;a++){b+=a;a+=2;}}程序运行后的输出结果是A)9,18B)8,11C)7,11D)10,14(8)以下关于return语句的叙述中正确的是bA)一个自定义函数中必须有一条return语句B)一个自定义函数中可以根据不同情况设置多条return语句C)定义成void类型的函数中可以有带返回值的return语句D)没有return语句的自定义函数在执行结束时不能返回到调用处(9)下列选项中,能正确定义数组的语句是DA)intnum[0..2008];B)intnum[];C)intN=2008;intnum[N];D)#defineN2008intnum[N];(10).有以下程序段inta[10]={1,2,3,4,5,6,7,8,9,10},*p,b;p=&a[3];b=p[5];b中的值是(D)A.5B.6C.8D.9(11)有以下程序main(){inta[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);}程序运行后的输出结果是cA)6B)10C)11D)15(12)有以下程序#include"stdio.h"#defineSUB(a)(a)-(a)main(){inta=2,b=3,c=5,d;d=SUB(a+b)*c;printf("%d\n",d);}程序运行后的输出结果是CA)0B)-12C)-20D)10(13)有以下程序#include"stdio.h"{inta=2,b=2,c=2;printf("%d\n",a/b&c);}程序运行后的输出结果是aA)0B)1C)2D)3(14)下面程序段的运行结果是(A)#include<stdio.h>main(){inta=1;intb=2;intc=2;intt; while(a<b<c){t=a;a=b;b=t;c--;}printf("%d,%d,%d",a,b,c);}A)1,2,0B)2,1,0 C)1,2,1D)2,1,1(15)有以下程序#include"stdio.h"main(){ int c=0,k;for(k=1;k<3;k++)switch(k){ default:c+=k;case 4:c+=2;break;}printf("%d\n",c);}程序运行后的输出结果是AA)3B)5C)7D)9二填空题(本题共4小题,满分20分)1.(4分)以下程序运行结果是:X=8#include<stdio.h>main(){inti,j,X=0;for(i=0;i<2;i++){X++;for(j=0;j<3;j++){if(j%2)continue;X++;}X++;}}2.(4分)以下程序运行结果是:x=10123#include<stdio.h>voidfun1(intx){x=20;}voidfun2(intb[4]){intj;for(j=0;j<4;j++){b[j]=j;}}main(){intx=10;inta[4]={1,2,3,4},k;fun1(x);fun2(a);for(k=0;k<4;k++){printf("%d\n",a[k]);}}3.(4分)↙则程序运行结果是:66#include<stdio.h>main(){intx,y;scanf("%2d%*4s%2d",&x,&y);printf("%d",y-x);}4.(8分)以下程序的功能是输入任意整数给n后,输出n行由大写字母A开始构成的三角形字符阵列图形。

C语言模拟题十套附答案

C语言模拟题十套附答案

第一部分:选择题(40分,20小题/套)概述1、下面关于C语言的叙述中,正确的是(D)A. 每行只能写一条语句B. 程序中必须包含有输入语句C. main函数必须位于文件的开头D. 每条语句最后必须有一个分号2、下面关于C语言的叙述中,错误的是(B)A. 若一条语句较长,也可分写在下一行上B. 构成C语言源程序的基本单位是表达式C. C语言源程序中大、小写字母是有区别的D. 一个C语言源程序可由一个或多个函数组成3、关于C语言数据类型的叙述,正确的是()A. 枚举类型不是基本类型B. 数组不是构造类型C. 变量必须先定义后使用D. 不允许使用空类型4、C程序中main函数的位置(C)A. 必须在最开始B. 必须在系统库函数后面C. 可以在自定义函数后面D. 必须在最后5、C语言的函数体由(B)括起来A. ( )B. { }C. [ ]D. /* */6、关于C语言的叙述中,不正确的是(C)A. C程序可由一个或多个函数组成B. C程序必须包含一个main()函数C. C程序的基本组成单位是函数D. 注释说明只能位于一条语句的后面7、一个程序的执行是从(C)A. 本程序的第一个函数开始,到最后一个函数结束B. 本程序的main函数开始,到main函数结束C. 本程序的main函数开始,到最后一个函数结束D. 本程序的第一个函数开始,到main函数结束8、结构化程序设计的三种基本结构是(C)A. 函数结构、分支结构、判断结构B. 函数结构、嵌套结构、平行结构C. 顺序结构、分支结构、循环结构D. 分支结构、循环结构、嵌套结构9、调试程序是指对程序进行(C)A. 编辑B. 编译C. 查错和排错D. 连接10、C语言中,复合语句的构成是将一系列语句置于(C)A. begin与end之间B. 一对圆括号“()”之间C. 一对花括号“{ }”之间D. 一对方括号“[ ]”之间11、构成C语言源程序的基本单位是(D)A. 语句B. 过程C. 表达式D. 函数语法基础12、在C语言中,正确的用户标识符是(B)A. 3fB. _forC. structD. _f.513、C语言的基本数据类型包括(A)A. 整型、实型、字符型B. 整型、实型、字符型、逻辑型C. 整型、字符型、逻辑型D. 整型、实型、逻辑型14、以下(D)是正确的常量A. E-5B. 1E5.1C. ‘a12’D. 32766L15、以下(D)是正确的变量名A. a.beeB. –p11C. intD. p_1116、以下(C)是正确的字符常量A. “c”B. ‘//”C. ‘W’D. “\32a”17、以下(A)是不正确的字符串常量A. ‘abc’B. “12’12”C. “0”D. “ “18、C语言的整型数据在内存中的存储形式是(C)A. 原码B. 反码C. 补码D. ASCII码19、以下(B)是正确的浮点数( e后面的数必须为整数e前面必须要有数字A. e3B. .62C. 2e4.5D. 12320、下列不属于C语言关键字的是(D)A. continueB. integerC. staticD. signed21、C语言的字符型数据在内存中的存储形式是(D)A. 原码B. 补码C. 反码D. ASCII22、在C语言中,变量所分配的内存空间大小是(A)A. 由变量的类型决定B. 由用户自己决定C. 任意的D. 均为两个字节23、若有定义:int a=2;则正确的赋值表达式是(A)A. a-=(a*3)B. double(-1)C. a*3D. a*4=324、语句x=(a=3,b=++a);运行后,x、a、b的值依次为()A. 3,3,4B. 4,4,3C. 4,4,4D. 3,4,325、语句a=(3/4)+3%2;运行后,a的值为(B)A. 0B. 1C. 2D. 326、以下四项中,符合C语言语法的语句是(C)注意分号A. int a+b=c;B. int a=12:b=12:c=12;C. int a=12,b=12,c=12;D. int a,b=12,float c=2127、若有定义:int x,a;则语句x=(a=3,a+1);运行后,x、a的值依次为()A. 3,3B. 4,4C. 4,3D. 3,428、若变量已正确定义并赋值,符合C语言语法的表达式是()A. a=8+b+c,a++B. a=3aC. int(12.3%4)D. a=a+1=c+b29、若有定义:int a,b;double x;则以下不符合C语言语法的表达式是()A. x%(-3)B. a+=-1C. a=b=2D. x=a+b30、若有定义:int x=2,y=3;float i;则以下符合C语言语法的表达式是(B)A. x=x*3=2B. x=(y==1)C. i=float(x) ( 形式错误:正确的是:i=(float)x 是将数据类型括号起来)D. i%(-3)31、若有定义:int x;则语句x=(2*3)+6%5;运行后,x的值是()A. 8B. 7C. 6D. 532、下面关于C语言变量的叙述中,错误的是(C)A. 可以用const关键字定义变量B. 在C程序中,SUM和sum是不同的变量C. 变量名必须由字母或下划线组成(可是是字母和数字组合)D. 变量的类型确定了变量的取值范围33、若有定义:int x=5,y=6;则表达式x=(y= =6)的值为()A. 5B. 1C. 6D. 034、下面叙述正确的是(B)A. 2/3与2.0/3.0等价B. (int)2.0/3与2/3等价C. ++5与6等价D. ‘A’与”A”等价35、下面叙述中,错误的是(A)A. C语言基本的算术运算符不包含模运算符”%”B. 算术运算符的优先级高于关系运算符C. 自加和自减运算符的结合方向是”自右向左”D. C语言规定在表达式求值时,按其中运算符的优先级先高后低的次序进行36、下面叙述正确的是(A)A. 强制类型转换运算的优先级高于算术运算B. 若a和b是整型变量,(a+b)++是合法的(自加自减运算只能用于简单变量,不能用于表达式或常量)C. ‘A’*’B’是不合法的D. “A”+”B”是合法的只能字符间运算37、若有定义:int i=1,j=5;则表达式(++j)*(i--)的值为(C)A. 1B. 0C. 6D. 7 (i先运算再减减,加了括号也一样38、设整型变量a为5,使b不为2的表达式是(C)A. b=(++a)/3B. b=6-(--a)C. b=a%2D. b=a/239、若有定义:int a=1,b=2,c=3;则语句++a||++b&&++c;运行后b的值为(C)A. 1B. 0C. 2D. 3(&&的优先级高于|| ,即先进行++b&&++c运算,~,<< ,>>,&,^(异或),| 优先级依次降低)40、若有定义:int i,j;则表达式(i=2,j=5,i++,i+j++)的值是(B)A. 7B. 8C. 9D. 10 (i++要算完)41、若有定义:int a,b;则表达式(a=2,b=5,a*2,b++,a+b)的值是(B)A. 7B. 8C. 9D. 1042、若有定义:int i=2,j=5;则表达式(i+1,j+1,(++i+(j--))的值为(A)A. 8B. 6C. 7D. 5 红字部分先算43、若已定义:int i=3,k;则语句k=(i--)+(i--);运行后k的值为(C)A. 4B. 5C. 6D. 7 ( i先运算再--44、C语言的运算符按运算对象的个数可以分为(C)A. 单目运算符一种B. 单目和双目运算符C. 单目、双目和三目运算符D. 单目、双目、三目和四目运算符45、若已定义:float m;拟从键盘输入135.78这一数据给变量m,则应选用的语句是(D)A. scanf(“%5.2f”,&m);B. scanf(“%3.2f”,&m);C. scanf(“6.2f”,&m);D. scanf(“%6f”,&m);46、已知double a;使用scanf()函数输入一个数值给变量a,正确的函数调用是()A. scanf(“%l d”,&a);B. scanf(“%l f”,&a);C. scanf(“%c”,&a);D. scanf(“%u”,&a);47、已知char a;使用scanf()函数输入一个字符给变量a,不正确的函数调用是(B)A. scanf(“%d”,&a);B. scanf(“%l f”,&a);不可能是实数C. scanf(“%c”,&a);D. scanf(“%u”,&a);十进制无符号48、putchar()函数的功能是向终端输出(B)A. 多个字符B. 一个字符C. 一个实型变量值D. 一个整型变量表达式49、以下程序段运行后的输出结果是(C)int k=11;printf(“k=%d,k=%o,k=%x\n”,k,k,k);A. k=11,k=13,k=cB. k=11,k=12,k=13C. k=11,k=13,k=bD. k=11,k=13,k=a50、若有定义:int x=1234,y=123,z=12;则语句printf(“%4d+%3d+%2d”,x,y,z);运行后的输出结果为(D)A. B.C. 1234+1234+1234D. 1234+123+1251、已有如下定义和输入语句,int a;char c1,c2;scanf(“%d%c%c”,&a,&c1,&c2);若要求a、c1、c2的值分别为10、A和B,正确的数据输入是()A. 10ABB. 10 A BC. 10A BD. 10 AB52、以下程序段的运行结果是(A)int a=0,b=0,c=0;if(a&&++b) (因为a=0 又是与运算,故不进行&&后面的运算了)c++;printf(“%d,%d\n”,b,c);A. 0,0B. 1,2C. 2,2D. 1,053、以下程序的运行结果是()void main(){int a=65;c har c=’A’;printf(“%x,%d”,a ,c);}A. 65,aB. 41,aC. 65,65D. 41,6554、若已定义:int a=5;float b=63.72;以下语句中能输出正确值的是(B)A. printf(“%d%d”,a,b);B. printf(“%d%2f”,a,b);C. printf(“%2f%2f”,a,b);D. printf(“%2f%d”,a,b);55、运行以下程序段时编译出错,其原因是(A)char c1='8',c2='2008';printf("%c,%d\n",c1,c2);A. c2是字符变量,只能赋以字符常量,不能赋以字符串常量B. 字符串要用“2008“表示,而‘2008’不是字符串表示C. ‘2008’只能赋值给字符数组D. 字符变量不能用%d格式输出56、若已定义:int a=3,b=15,c;则语句c=a>b;运行后c的值为(B)A. 1B. 0C. tD. f57、在C语言中,判定逻辑值为“真“的最正确的叙述是(B)A. 1B. 非0的数C. 大于0的数D. 非0的整数58、若已定义:int a=-36,b=-30,c;则语句c=a<b;运行后c的值为(A)A. 1B. tC. 0D. f (有符号的比较,按负数进行比较)59、能正确表示数学关系式800>=y>=500的C语言表达式为(A)A. (y<=800)&&(y>=500)B. (y<=800)AND(y>=500)C. 800>=y>=500D. (y<=800)&(y>=500)60、若有定义:int x=3,y=4;则表达式!x||y的值为(A)(!,算术运算符,关系运算符,&&,|| ,赋值运算符优先级依次降低)注意:表达式的最后结果不是零就是一A. 1B. 0C. 3D. 461、若有定义:int i=7,j=8;则表达式i>=j||i<j的值为()A. 1B. 变量i的值C. 0D. 变量j的值62、若希望当a的值为奇数时,表达式的值为“真”,a的值为偶数时,表达式的值为”假”。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

上海师范大学标准试卷~ 学年第学期考试日期年月日(考试时间:90分钟)科目:C 语言程序设计(模拟卷)专业本科年级班姓名学号我承诺,遵守《上海师范大学考场规则》,诚信考试。

签名:________________一、选择和填空题(本大题满分20分,每题2分。

)1、把a1、a2定义成整型变量,并赋初值1的定义语句是int a1=1,a2=1; 。

2、有以下程序片段,请问执行后的输出结果是 1 。

char a=8,c;c=a>=3;printf("%d\n",c);3、有以下程序片段,若程序运行时从键盘输入48(字符0的ASCII码),则输出结果为09 。

char c1,c2; scanf("%d",&c1); c2=c1+9; printf("%c%c\n",c1,c2);4、有以下程序片段,若程序运行时从键盘输入12,则输出结果为1217 。

scanf("%d",&x);if(x>15) printf("%d",x-5);if(x>10) printf("%d",x);if(x>5) printf("%d\n",x+5);5、有以下程序片段,请问执行后的输出结果是0 。

char str[]="ABCD"; printf("%d\n",str[4]);6、若变量已正确定义,要将a和b中的数进行交换,下面不正确的语句是 C 。

A) a=a+b, b=a-b, a=a-b; B) t=a, a=b, b=t;C) a=t; t=b; b=a; D) t=b; b=a; a=t;7、下面程序段中循环体的执行次数是 B 。

int j=0; do{j=j+1; }while(j>2);A) 0次B) 1次C) 2次D) 无限次8、以下程序的输出结果是 B 。

int fun(int a, int b, int c ) { return c=a*b;}main() { int c=3; fun(2,3,c); printf("%d\n",c); }A) 2 B) 3 C) 6 D) 无定值9、假设二维数组a有m列,则在元素a[i][j]前的元素个数为 B 。

A) j*m+i B) i*m+j C) i*m+j-1 D) i*m+j+110、判断整型变量a的值是否处于区间[5,10]的表达式应写作5<=a&&a<=10 。

1、下面程序实现摄氏温度C表示华氏温度F,其中有3个错误,请指出并改正。

#include <stdio.h>int main ( ){float f,c;scanf("%d",f);c=(5/9)*(f-32);printf("f=%f\nc=%f\n",f,c);return 0;}改正:scanf("%f",&f);c=(5.0/9)*(f-32);2、下面程序实现1+2+3+…+100, 其中有3个错误,请指出并改正。

#include <stdio.h>int main(){ int sum;while(i<=100);{ sum=sum+i;i++;}printf("sum=%d\n",sum);return 0;}改正:int sum=0,i=1;while(i<=100)后面的分号删除3、程序填空:输入一字符串,求其中数字的个数。

#include <stdio.h>int main(){ char s[80];int i, num=0;gets(s);for (i=0; 【1】;i++){if (【2】) num++;}printf("num=%d\n",num);}【1】s[i]!='\0'【2】(s[i]>='0'&&s[i]<='9')4、以下程序用来检查二维数组是否对称(即:对所有i,j都有a[i][j]=a[j][i])。

#include <stdio.h>int main(){ int a[4][4]={1,2,3,4, 2,2,5,6, 3,5,3,7,8,6,7,4};int i, j, found=0;for(j=0; j<4; j++){ for(i=0; i<4; i++){ if(【1】){found= 【2】; break; }}if (found) 【3】;}if(【4】) printf("不对称\n");else printf("对称\n");return 0;}【1】a[i][j]!=a[j][i]【2】 1【3】break;【4】found二、综合题(本大题满分60分,1,2题每题6分,其余每题8分。

)5、程序填空:输入10个数,要求输出其中值最大的元素和该数是第几个数。

#include <stdio.h>int main(){ int 【1】;int a[10],m,n=0,i;printf("10 integer numbers:\n");for(i=0;i<10;i++) scanf("%d",&a[i]);m=a[0];for(i=1;i<10;i++){if (max(m,a[i])>m){ 【2】; n=i; }}printf("largest number is %d\n",m);printf("%dth number.\n",n+1);}int max(int x,int y){ return(x>y?x:y); }【1】max(int x,int y) ;【2】m=max(m,a[i])6、读程序,写出输出结果。

#include <stdio.h>main(){ char a[30],b[30];scanf("%s",a);gets(b);printf("a=%s\n",a);printf("b=%s\n",b);}程序运行时若输入:"How are you", 则输出结果是:a=How↓b= are you↓7、读程序,写出输出结果。

#include <stdio.h>int s2=1;int fun1();int main(){int i,s1;for(i=1;i<=3;i++) s1=fun1(); printf("s1=%d\ns2=%d\n",s1,s2); }int fun1(){ static int x=1;int y=1;x=x*2;s2=y*2;return x;}运行结果:s1=8↓s2=2↓8、读程序,写出输出结果。

#include <stdio.h>int main(){ char a[]="abcdcba";int i, j=0;for(i=1; i<7; i++)if(a[j]<a[i]) j=i;a[j+1]=a[7];puts(a);return 0;}运行结果:abcd三、编程序(本大题满分20分,每题10分。

)1、编写程序,输出所有的水仙花数。

(水仙花数是指一个3位数,其各位数的立方和等于该数本身。

例如153是一个水仙花数,333=++)153153#include <stdio.h>int main(void){ int x,y,z;for(x=1;x<=9;x++)for(y=0;y<=9;y++)for(z=0;z<=9;z++)if(100*x+10*y+z==x*x*x+y*y*y+z*z*z)printf("%d%d%d\n",x,y,z);return 0;}2、编写程序,将一个二维数组(三行四列)的行和列的元素互换,存到另一个二维数组中(四行三列)。

数据由键盘输入(整数),结果输出在屏幕上。

#include <stdio.h>int main(){int a[3][4];int b[4][3], i, j;for (i=0; i<3; i++)for (j=0; j<4; j++)scanf("%d", &a[i][j]);for (i=0; i<3; i++)for (j=0; j<4; j++)b[j][i]=a[i][j];for (i=0; i<4; i++){ for (j=0; j<3; j++)printf("%4d", b[i][j]);printf("\n");}return 0;}。

相关文档
最新文档