《C语言模拟试题II(9页).doc》由会员分享,可在线阅读,更多相关《C语言模拟试题II(9页).doc(9页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、-C语言模拟试题II-第 9 页C语言程序设计教程 实验与练习(第二版)模拟试题II及答案一、 单项选择题(每题2分,30道题,共60分)1. 下面的程序将输出:main() float f; int x=1,y=2.5; f=x/y; printf(f=%1.1f,y=%#X, f, y );A.f=0.0 , y=2B.f=0.5 , y=0X2 C.f=0.0 , y=0X2D.f=0.5 , y=22. 下面的程序将输出:#include string.hmain() int len; char str=ab042350; len=strlen(str); printf(%d,len)
2、;A. 10B. 5C. 6D. 73. 下面的程序将输出:main() int a=0x31; char *str=this is one. ,this is two. ; char ch; ch=+a-0; switch(ch) case 1: printf (%s, str0); case 2: printf (%s, str1); default: printf (no way! );A.this is one.B.this is two.C.no way!D.this is two.no way!4. 下面的程序将输出:main() int a5=1,2,3; int k,j; fo
3、r(k=1;k4;k+) ak+; for(j=0;j10) break; C. int i=0;D. i =100; do +i ; while(i=0); while(+i%2) i+;8. 若已知int a34,*p;p=(int *)a;那么对数组a的第2行第2列的正确引用是:A.a22B.p5C.a5D.p119. 已知:int (*p)20; 且p的值是0X5000,请问表达式p+2的值是多少?A. 0X5050B. 0X5002C. 0X5004D. 0X504010. 若有说明int a22;那么,下面正确的C赋值语句是:A.a=2;B.a1=2;C.a1=1,2;D.a01=
4、a10;11. 设x为int型变量,则执行以下语句后,x的值为 x=10; x+=x-=x-x; A10 B20 C40 D3012. 已知x=43,ch=A,y=0;则表达式(x=y&chB&!y)的值是:A0 B语法错 C1 D假13. 下面能正确进行字符串赋值操作的语句是:Achar s5=ABCDE;Bchar s=A,B,C,D,E;Cchar *s;s=ABCDEF; Dchar *s;scanf(%s,s);14. 已知:int a34, *p=&a00; p+=6; 那么*p 和_的值相同.A(a+6) B*(&a0+6) Ca22 D*(&a00+6)15. 设有以下说明和定
5、义:typedef union long i; int k4; char c; DATE;struct date int cat; DATE cow; double dog; too;DATE max;则下列语句的执行结果是printf (%d,sizeof (struct date ) +sizeof(max);A26 B30 C18 D816. 设有如下定义:int *(*ptr)();则以下叙述中正确的是Aptr是指向一维组数的指针变量Bptr是指向int型数据的指针变量Cptr是指向函数的指针,该函数返回一个int型数据Dptr是指向函数的指针,该函数的返回值是指向int型数据的指针1
6、7. 若二维数组a 有m列,则在aij之前的元素个数为_Aj*m+i Bi*m+j C i*m+j-1 Di*m+j+118. 以下程序运行后,输出结果是A13 B51 C11 D53 int d=1; fun (int p) int d=5; p=d; printf(%d,p); main() int a=3; fun(a); d=a; printf(%dn,d);19. 以下程序运行后,如果从键盘上输入ABCDE,则输出结果为A4B7 C6 D5#include#includefunc(char str ) int num =0;while(*(str+num)!=0) num+;retu
7、rn(num);main( )char str10,*p=str; gets(p); printf(%dn,func(p);20. 执行以下程序段后,m的值为int a23= 1,2,3,4,5,6 ;int m,*p;p=&a00;m=(*p)*(*(p+2)*(*(p+4);A15 B14 C13 D1221. 已知定义了两个结构体变量,下面是正确的语句是: struct int x; char name10; float mark; S1,S2;A. S1=5, ”yang”, 90.5;B. S1=S2;C. S1.x=S2.x ; S1.name=S2.name ; S1.mark=
8、S2.mark;D. strcpy(S1,S2);22. 下面这段程序运行的结果是: int a=0x4145; char *p; p=(char *)&a; *p+=1; printf(“%X” , *p);A. 46B. 42 C.4146D.424523. 下面这段程序运行的结果是: char str =”%#X”; int a=50; printf(str,a+);A.50B.0X33C.0X32 D.有语法错24. 下面哪个语句是函数的原型声明A. int (*f)(int a , int b);B. int f(int a , 5);C. int f(int a , int b);
9、D. int f(int a=5, int b=6);25. 已知int a=0XF11F , b; 执行完下面的操作后,a的值是多少? b=(a&0xFF00)4;A. 0X0FF1B. 0XF11F C.0XFF10 D. 0XFFF126. 有以下程序:int a=2;int f(int *a)return (*a)+;main( ) int s=0; int a=5; s+=f(&a); s+=f(&a); printf(%dn,s);执行后输出结果是 。A.10 B.9 C.7 D.827. 设有以下语句:typedef struct S int g; char h; T;则下面叙述
10、中正确的是 。A.可用S定义结构体变量 B.可以用T定义结构体变量C.S是struct类型的变量 D.T是struct S类型的变量28. 有以下程序:main() unsigned char a,b; a=4|3; b=4&3; printf(%d %dn,a,b);执行后输出结果是 。A. 7 0 B.0 7 C.1 1 D.43 029. 有以下程序void sort(int a,int n) int i,j,t; for(i=0;in-1;i+=2) for(j=i+2;jn;j+=2) if(aiaj) t=ai;ai=aj;aj=t;main() int k10=1,2,3,4,5
11、,6,7,8,9,10,i; sort(k,10); for(i=0;i10;i+) printf(%d,ki); printf(n);其输出结果是 。A1,2,3,4,5,6,7,8,9,10, B 10,9,8,7,6,5,4,3,2,1,C9,2,7,4,5,6,3,8,1,10, D1,10,3,8,5,6,7,4,9,2,30. 有以下程序:void f(int a,int i,int j) int t; if(ij) t=ai; ai=aj;aj=t; f(a,i+1,j-1);main() int i,k5=1,2,3,4,5; f(k,0,4); for(i=0;i5;i+)
12、printf(%d,ki); printf(n);执行后输出结果是 。A5,4,3,2,1, B5,2,3,4,1, C1,2,3,4,5, D1,2,3,4,5,二、 阅读程序,将运行结果写在右边空白处(共2道题,每题5分,共10分)程序1#include int f(int n)static int s=1; while(n) s*=n-; return s;main()int i,j; i=f(3); j=f(5); printf(nThe output is:n); printf(i=%d,j=%d n,i,j);程序2#include #include struct data_tag
13、 int x; struct data_tag *next;typedef struct data_tag DATA;void main() DATA Node5; DATA *p; int i; clrscr(); for(i=0;ix); p=p-next;三、改错题(每道题有5个错,每改对一个给2分,共3道题,30分)程序1#include stdio.hvoid main() int a,b; scanf(%d%d,&a,b); f=float(a/b); printf(a/b=%d,f);程序2#include stdio.h#include conio.hint CompareIn
14、t(int a,int b) if(ab) return 1; else if(a=b) return 0; else if(!a=b) return -1;void main() int a,b; unsigned int k; printf(input two number,like this 12,13:); scanf(%d,%d,&a,&b); k=CompareInt(a,b); switch(k) case 1: printf(%d%d,a,b); case 0: printf(%d=%d,a,b);break; case -1:printf(%d%d,a,b);break; g
15、etch();程序3long StrToNum(char *str) int k;long result=0; k=0; while(strk!=0) result=result*10+strk; return result;void main() char *str; int i; long l; for(i=0 , ib) return 1; else if(a=b) return 0; else if(a%d,a,b);break; case 0: printf(%d=%d,a,b);break; case -1:printf(%d%d,a,b);break; getch();程序3long StrToNum(char *str) int k;long result=0; k=0; while(strk!=0) result=result*10+strk+-0; return result;void main() char str6; int i; long l; for(i=0 ; i6 ; i+) *(str+i)=1+i; l=StrToNum(str); printf(%ld,l);