《C语言程序设计模拟试题B附答案.docx》由会员分享,可在线阅读,更多相关《C语言程序设计模拟试题B附答案.docx(18页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、C语言程序设计模拟试卷十二一、填空题。(每题2分,共20分) 1. C语句必需以 号完毕2. 若已定义x和y为double类型,则表达式x=1,y=x+3/2 的值是。3. 若有以下程序段, int c1=1,c2=2,c3; c3=1.0/c2*c1; 则执行后,c3中的值是 。4. 设有定义:int n,*k=&n;以下语句将利用指针变量k读写变量n中的内容,请将语句补充完好。scanf(“%d, ” );printf(“%dn”, 。); 5. 若a为int类型,且其值为3,则执行完表达式a+=a-=a*a后,a的值是 。6. 有以下程序段int k=0while(k=1)k+;whil
2、e 循环执行的次数是 。7. 表达式a = 1,a + 1,a + + 的值是_。8. 设char string =This_is_a_book!;则数组的长度应是_。9. 设int a23 = 2,3;则数组元素_的值为3。10. 设有如下变量说明语句 int a8=44,55,12,42,94,18,6,67,*p=a;则通过指针变量p引用值为18的表达式是_ _。11. 执行下述程序 #include int strlength(char a,char b) int num=0,n=0; while (*(a+num)!=0) num+; while (bn) *(a+num)=bn;
3、num+; n+; return (num); main() char strl81,str281,*p1=str1,*p2=str2; gets(p1); gets(p2); printf(%dn,strlength(p1,p2);若从键盘输入 qwerty abcd 则输出结果是_ _。二、单项选择题。(每题2分,共40分)1下列叙述中错误的是( )A)计算机不能干脆执行用C语言编写的源程序B)C程序经C编译程序编译后,生成后缀为.obj的文件是一个二进制文件C)后缀为.obj的文件,经连接程序生成后缀为.exe的文件是一个二进制文件D)后缀为.obj和.exe的二进制文件都可以干脆运行2
4、根据C语言规定的用户标识符命名规则,不能出如今标识符中的是()A)大写字母 B)连接符 C)数字字符 D)下划线3以下叙述中错误的是( )A)C语言是一种构造化程序设计语言B)构造化程序有依次、分支、循环三种根本构造组成C)运用三种根本构造构成的程序只能解决简洁问题D)构造化程序设计提倡模块化的设计方法4对于一个正常运行的C程序,以下叙述中正确的是()A)程序的执行总是从main函数开场,在main函数完毕B)程序的执行总是从程序的第一个函数开场,在main函数完毕C)程序的执行总是从main函数开场,在程序的最终一个函数中完毕D)程序的执行总是从程序的第一个函数开场,在程序的最终一个函数中完
5、毕5设变量均已正确定义,若要通过scanf(“%d%c%d%c”,&a1,&c1,&a2,&c2);语句为变量a1和a2赋数值10和20,为变量c1和c2赋字符X和Y。以下所示的输入形式中正确的是(注:代表空格字符)( )A)10X20Y回车 B)10X20Y回车 C)10X回车 D)10X回车20Y回车 20Y回车6若有代数式(其中e仅代表自然对数的底数,不是变量),则以下可以正确表示该代数式的C语言表达式是( )A)sqrt(abs(nx+ex) B)sqrt(fabs(pow(n,x)+pow(x,e)C)sqrt(fabs(pow(n,x)+exp(x) D)sqrt(fabs(pow
6、(x,n)+exp(x)7设有定义:int k=0;,以下选项的四个表达式中与其他三个表达式的值不一样的是()A)k+ B)k+=1 C)+k D)k+1 8有以下程序,其中%u表示按无符号整数输出()main()unsigned int x=0xFFFF; /* x的初值为十六进制数*/ printf(“%un”,x);程序运行后的输出结果是A)-1 B)65535 C)32767 D)0xFFFF 9设变量x和y均已正确定义并赋值,以下if语句中,在编译时将产生错误信息的是( )A)if(x+); B)if(xy&y!=0); C)if(xy)x- D)if(y0&n5);程序运行后的输出
7、结果是( )A)222 B)0235 C)02356 D)2356 13有以下程序main()int i,j; for(i=1;i4;i+)for(j=i;j4;j+)printf(“%d*%d=%d”,i,j,i*j);printf(“n”);程序运行后的输出结果是( )A)1*1=1 1*2=2 1*3=3 B)1*1=1 1*2=2 1*3=32*1=2 2*2=4 2*2=4 2*3=63*1=3 3*3=9C)1*1=1D)1*1=11*2=2 2*2=4 2*1=2 2*2=41*3=3 2*3=6 3*3=9 3*1=3 3*2=6 3*3=9 14以下合法的字符型常量是( )A
8、)”x13” B)”018” C)”65” D)”n” 15在C语言中,函数返回值的类型最终取决于()A)函数定义时在函数首部所说明的函数类型B)return语句中表达式值的类型C)调用函数时主函数所传递的实参类型D)函数定义时形参的类型16已知大写字母A的ASCII码是65,小写字母a的ASCII码是97,以下不能将变量c中大写字母转换为对应小写字母的语句是()A)c=(c-A)%26+a B)c=c+32C)c=c-A+aD)c=(A+c)%26-a 17有以下函数 int fun(char *s) char *t=s; while(*t+); return(t-s); 该函数的功能是(
9、)A)比拟两个字符的大小 B)计算s所指字符串占用内存字节的个数C)计算s所指字符串的长度 D)将s所指字符串复制到字符串t中18设已有定义:float x;则以下对指针变量p进展定义且赋初值的语句中正确的是( )A)float *p=1024; B)int *p=(float x);C)floatp=&x; D)float *P=&x; 19有以下程序#include main()int n,*p=NULL;*p=&n;printf(“Input n:”); scanf(“%d”,&p);printf(“output n:”);printf(“%dn”,p);该程序试图通过指针p为变量n读入
10、数据并输出,但程序有多处错误,以下语句正确的是( )A)int n,*p=NULL; B)*p=&n; C)scanf(“%d”,&p) D)printf(“%dn”,p); 20以下程序中函数f的功能是:当flag为1时,进展有由小到大排序;当flag为0时,进展由大到小排序。void f(int b,int n,int flag)int i,j,t;for(i=0;in-1;i+) for (j=i+1;jbj:bibj)t=bi;bi=bj;bj=t; main()int a10=5,4,3,2,1,6,7,8,9,10,i; f(&a2,5,0); f(a,5,1); for(i=0;
11、i10;i+)printf(“%d,”,ai);程序运行后的输出结果是( )A)1,2,3,4,5,6,7,8,9,10, B)3,4,5,6,7,2,1,8,9,10,C)5,4,3,2,1,6,7,8,9,10, D)10,9,8,7,6,5,4,3,2,1,三、修改下列程序:(在程序出错的语句下划横线并标号,把修改后的语句下载程序下面的横线上。)(每小题5分,共10分)1下列给定程序中,函数fun的功能是:依次取出字符串中全部数字字符,形成新的字符串,并取代原字符串。#include #include void fun (char s) int i,j; for (i=0,j=0;si!
12、=0;i+) if (si=0 & si=9) sj=si; sj= “0”; main() char item80; clrscr(); printf(“nEnter a string:”);gets(item); printf(“nnThe string is :%sn”,item); fun (*item); printf(“nnThe string of changing is :%sn”,item); 2下列给定程序中,函数fun的功能是:分别铜级字符串中大写字母和小写字母的个数。例如,给字符串s输入:AAaaBBb123CCccccd,则应当输出结果:upper=6,lower=8
13、。#include #include void fun (char *s,int a, int b) while(*s) if (*s=A & *s=a & *s=z) b+; s+; main() char s100;int upper=0,lower=0; clrscr(); printf(“nPlease a string:”);gets(*s); fun(s,&upper, &lower); printf(“n upper=%d lower=%dn”,upper,lower); 四、阅读下列程序,在程序后面的横线上,写出该程序的功能或给出运行结果。(每小题5分,共20分)1. #inc
14、lude void main() int s=1,t=1,a,n; scanf(“%d%d”,&a,&n); for(int i=1;in;i+) t=t*10+1; s=s+t; s*=a; printf(“SUM=%dn”,s); 输入数据:2,4输出结果: 2.#include void main() int a,b,c,find(int,int,int); scanf(“%d%d%d”,&a,&b,&c); printf(“%dn%d,%d,%dn”,find(a,b,c),a,b,c); int find(int a,int b,int c) int u,s,t; u=(u=(ab)
15、a:b)c) u:c; t=(t=(ab)a:b)c) t:c; s=a+b+c-u-t; a=u; b=s; c=t; return s; 运行时输入: 5 7 3,输出结果: 3.#include void main() int a5=2,4,6,9,12,b6=2,3,4,6,8,9; for(int i=0;i5;i+) for(int j=0;j6;j+) if(*(a+i)=*(b+j) printf(“%d ”,*(a+i); printf(“n”); 输出结果: 4. #include #include void main() char str1=“*”; for(int i=
16、0;i4;i+) printf(“%sn”,str1); str1i= ; str1strlen(str1)-1= 0; 输出结果:五、按要求编写下列程序。(每题5分,共10分)1编一程序,输出如下三角形图形。 2编一程序,将字符串computer赋给一个字符数组,然后从第一个字母开场间隔的输出该串,请用指针完成。一、填空题1 分号22.000000304k*k5-126多数次728159a1010*(p + 5)1110二、单项选择题1-5 DBCAD6-10CABCD11-15CABDA16-20ACDAB三、程序修改1.修改后的程序如下:#include #include void fu
17、n (char s) int i,j; for (i=0,j=0;si!=0;i+) if (si=0 & si=9) sj+=si; sj= 0; main() char item80; clrscr(); printf(nEnter a string:);gets(item); printf(nnThe string is :%sn,item); fun (item); printf(nnThe string of changing is :%sn,item); 2.修改后的程序如下:#include #include void fun (char *s,int *a, int *b) w
18、hile(*s) if (*s=A & *s=a & *s=z) (*b)+; s+; main() char s100;int upper=0,lower=0; system(cls);printf(nPlease a string:);gets(s); fun(s,&upper, &lower); printf(n upper=%d lower=%dn,upper,lower); 四、阅读程序1.SUM=22.35 -7 33.2 4 6 94.五、1.#include #include void main() char str1=*; int i; for( i=0;i4;i+) printf(%sn,str1); str1strlen(str1)-1= 0;2.#include #include void main() char str=computer; char *s=str;while(*s)!=0)printf(%c ,*s);s+;第 18 页