C语言上机试题及答案1.docx
- 文档编号:5150827
- 上传时间:2022-12-13
- 格式:DOCX
- 页数:18
- 大小:20.29KB
C语言上机试题及答案1.docx
《C语言上机试题及答案1.docx》由会员分享,可在线阅读,更多相关《C语言上机试题及答案1.docx(18页珍藏版)》请在冰豆网上搜索。
C语言上机试题及答案1
在C语言中,形参的缺省存储类是(C)。
A、extern
B、register
C、auto
D、static
下列标识符中,不合法的C语言用户自定义标识符是(C)。
A、printf
B、sin
C、enum
D、_
以下不正确的if语句形式是(D)。
A、if(x B、if(x>y&&x! =y); C、if(x==y)x+=y; D、if(x! =y)scanf("%d",&x)elsescanf("%d",&y); 以下选项中正确的整型常量是C A、4/5 B、5 C、-10 D、1.000 下列变量说明语句中,正确的是(B)。 A、chara;b;c; B、intx,z; C、char: abc; D、intx;z; 以下程序的输出结果是B main() {intk=4,m=1,p; p=func(k,m); printf(“%d,”,p); p=func(k,m); printf(“%d\n”,p); } func(inta,intb) {staticintm,i=2; i+=m+1; m=i+a+b; return(m); } A、8,20 B、8,17 C、8,8 D、8,16 下列关于单目运算符++、--的叙述中正确的是___C___。 A、它们的运算对象可以是int型变量,但不能是double型变量和float型变量 B、它们的运算对象可以是任何变量和常量 C、它们的运算对象可以是char型变量、int型变量和float型变量 D、它们的运算对象可以是char型变量和int型变量,但不能是float型变量 下列字符数组长度为5的是C A、charc[10]={'h','a','b','c','d'}; B、charb[]={'h','a','b','c','d','\0'}; C、chara[]={'h','a','b','c','d'}; D、chard[6]={'h','a','b','c','\0'}; 以下程序运行后的输出结果是C #include main() {FILE*fp;inti,k=0,n=0; fp=fopen(“d1.dat”,“w”); for(i=1;i<4;i++)fprintf(fp,“%d”,i); fclose(fp); fp=fopen(“d1.dat”,“r”); fscanf(fp,“%d%d”,&k,&n);printf(“%d%d\n”,k,n); fclose(fp); } A、123 B、00 C、1230 D、12 定义语句int*swap();指的是D A、以上说法均不对 B、swap是一个返回整型值的函数 C、swap是一个指向函数的指针 D、swap是一个返回指向整型值指针的函数 以下选项中正确的实型常量是C A、0.03x102 B、32 C、3.1415 D、0 以下程序的运行结果是(B)。 main() {intn; for(n=1;n<=10;n++) { if(n%3==0)continue; printf("%d",n); } } A、12 B、12457810 C、1234567890 D、369 设变量a是整型,f是实型,i是双精度型,则表达式10+'a'+i*f值的 数据类型为(B)。 A、不确定 B、double C、int D、float 下列选项中正确的语句组是(B)。 A、chars[8];s={"Beijing"}; B、char*s;s="Beijing"; C、chars[8];s="Beijing"; D、char*s;s={"Beijing"}; 当定义一个结构体变量时,系统分配给它的内存是(D)。 A、结构中最后一个成员所需内存量 B、结构中第一个成员所需内存量 C、成员中占内存量最大者所需的容量 D、各成员所需内存量的总和 若有说明: int*p1,*p2,m=5,n;以下均是正确赋值语句的选项是(B)。 A、p1=&m;*p2=*p1; B、p1=&m;p2=p1; C、p1=&m;p2=&p1 D、p1=&m;p2=&n;*p1=*p2; 已定义两个字符数组a,b,则以下正确的输入格式B 是 A、scanf("%s%s",&a,&b); B、scanf("%s%s",a,b); C、gets("a"),gets("b"); D、get(a,b); 若有定义: inta=7;floatx=2.5,y=4.7; 则表达式x+a%3*(int)(x+y)%2/4的值是(D)。 A、3.500000 B、0.000000 C、2.750000 D、2.500000 结构化程序设计所规定的三种基本控制结构是(D)。 A、树形、网形、环形 B、输入、处理、输出 C、主程序、子程序、函数 D、顺序、选择、循环 在下列程序段中,枚举变量c1,c2的值依次是(A)。 enumcolor{red,yellow,blue=4,green,white}c1,c2; c1=yellow;c2=white; printf("%d,%d\n",c1,c2); A、1,6 B、1,4 C、2,6 D、2,5 已知year为整型变量,不能使表达式(year%4==0&&year%100! =0) ||year%400==0的值为“真”的数据是(A)。 A、1990 B、1996 C、1992 D、2000 以下正确的说法是(A)。 A、用户可以重新定义标准库函数,若如此,该函数将失去原有含义 B、系统根本不允许用户重新定义标准库函数 C、用户若需调用标准库函数,调用前不必使用预编译命令将该函数所在文件包括到用户源文件中,系统自动去调 D、用户若需调用标准库函数,调用前必须重新定义 设a=12,且a定义为整型变量。 执行语句a+=a-=a*=a;后a的值为(C)。 A、132 B、12 C、0 D、144 有以下宏定义B #definek2 #defineX(k)((K+1)*k) 当C程序中的语句y=2*(K+X(5));被执行后, A、y中的值为65 B、语句报错 C、y中的值为34 D、y中的值不确定 对于void类型函数,调用时不可作为(A)。 A、表达式 B、循环体里的语句 C、自定义函数体中的语句 D、if语句的成分语句 下面程序的运行结果是D main() {charch[7]=“65ab21”; inti,s=0; for(i=0;ch[i]>=’0’&&ch[i]<=’9’;i+=2) s=s*10+ch[i]-‘0’; printf(“%d\n”,s); } A、62 B、6521 C、12ba56 D、6 对于建立函数的目的,正确的说法是D A、提高程序的执行效率 B、减少程序的篇幅 C、减少程序文件所占的内存 D、提高程序的可读性 以下程序的输出结果是C #include main() { inti; for(i=1;i<5;i++) { if(i%2) putchar(‘<’); else continue; putchar(‘>’); } putchar(‘#’); } A、<><><># B、><><# C、<><># D、><><><# 下面判断正确的是(D)。 A、char*a="china";等价于char*a;*a="china"; B、charstr[10]={"china"};等价于charstr[10];str[]={"china"}; C、charc[4]="abc",d[4]="abc";等价于charc[4]=d[4]="abc"; D、char*s="china";等价于char*s;s="china"; charc[]="VeryGood";是一个合法的为字符串数组赋值的语句。 对 用fopen("file","r+");打开的文件"file"可以进行修改。 对 C程序中有调用关系的所有函数必须放在同一个源程序文件中。 错 char*p="girl";的含义是定义字符型指针变量p,p的值是字符串"girl"。 错 若a=3,b=2,c=1则关系表达式"(a>b)==c"的值为"真"。 对 C语言中只能逐个引用数组元素而不能一次引用整个数组。 对 若a=3,b=2,c=1则关系表达式"(a>b)==c"的值为"真"。 对 C语言的函数可以嵌套定义.错 如果函数值的类型和return语句中表达式的值不一致,则以 函数类型为准。 对 x*=y+8等价于x=x*(y+8)。 对 【程序设计】 -------------------------------------------------- 功能: 在键盘上输入一个3行3列矩阵的各个元素的值(值 为整数),然后输出矩阵第一行与第三行元素之和, 并在fun()函数中输出。 ------------------------------------------------*/ #include"stdio.h" intfun(inta[3][3]) { /**********Begin**********/ /**********End**********/ } voidTestFunc(); main() { inti,j,s,a[3][3]; for(i=0;i<3;i++) { for(j=0;j<3;j++) scanf("%d",&a[i][j]); } s=fun(a); printf("Sum=%d\n",s); TestFunc(); } 答案 intsum; inti,j; sum=0; for(i=0;i<3;i+=2) for(j=0;j<3;j++) sum=sum+a[i][j]; 【程序设计】 -------------------------------------------------- 功能: 从字符串中删除指定的字符。 同一字母的大、小写 按不同字符处理。 例如: 若程序执行时输入字符串为: turbocandborlandc++ 从键盘上输入字符: n,则输出后变为: turbocadbo rladc++,如果输入的字符在字符串中不存在,则字 符串照原样输出。 ------------------------------------------------*/ #include voidbky(); intfun(chars[],intc) { /**********Begin**********/ /**********End**********/ } main() { staticcharstr[]="turbocandborlandc++"; charch; printf("原始字符串: %s\n",str); printf("输入一个字符: "); scanf("%c",&ch); fun(str,ch); printf("str[]=%s\n",str); bky(); } voidbky() { voidTestFunc() { FILE*IN,*OUT; intm; intn; inti[3][3]; into; IN=fopen("in.dat","r"); if(IN==NULL) { printf("ReadFileError"); } OUT=fopen("out.dat","w"); if(OUT==NULL) { printf("WriteFileError"); } for(m=0;m<3;m++) { for(n=0;n<3;n++) fscanf(IN,"%d",&i[m][n]); } o=fun(i); { fprintf(OUT,"%d\n",o); } fclose(IN); fclose(OUT); } 答案 char*q=s; for(;*q;q++) if(*q! =c)*(s++)=*q; *s=0; 【程序改错】 -------------------------------------------------------- 功能: 编写函数fun生成一个对角线元素为5,上三角元素为0, 下三角元素为1的3*3的二维数组。 ------------------------------------------------------*/ #include"stdio.h" main() { inta[3][3],i,j; fun(a); for(i=0;i<3;i++) { for(j=0;j<3;j++) printf("%d",a[i][j]); printf("\n"); } } fun(intarr[][3]) { /**********ERROR**********/ inti,j /**********ERROR**********/ for(i=1;i<3;i++) for(j=0;j<3;j++) /**********ERROR**********/ if(i=j) arr[i][j]=5; elseif(j>i) arr[i][j]=0; else arr[i][j]=1; } 答案 inti,j;for(i=0;i<3;i++)【参考答案】if(i==j) 【程序改错】 -------------------------------------------------------- 功能: 求出N×M整型数组的最小元素及其所在的行坐标及列坐标 (如果最小元素不唯一,选择位置在最前面的一个)。 例如: 输入的数组为: 923 4156 1219 10112 求出的最小数为1,行坐标为2,列坐标为1。 ------------------------------------------------------*/ #defineN4 #defineM3 #include intRow,Col; main() { inta[N][M],i,j,min,row,col; printf("inputaarray: "); for(i=0;i for(j=0;j scanf("%d",&a[i][j]); for(i=0;i { for(j=0;j printf("%d",a[i][j]); printf("\n"); } min=fun(a); printf("max=%d,row=%d,col=%d",min,Row,Col); } intfun(intarray[N][M]) { intmin,i,j; min=array[0][0]; Row=0; Col=0; for(i=0;i { /**********ERROR**********/ for(j=i;j /**********ERROR**********/ if(min { min=array[i][j]; Row=i; /**********ERROR**********/ Col=i; } } return(min); } 答案 for(j=0;j 【程序填空】 --------------------------------------------------------- 功能: 已定义一个含有30个元素的数组s,函数fun1的功能是按 顺序分别赋予各元素从2开始的偶数,函数fun2则按顺序 每五个元素求一个平均值,并将该值存放在数组w中。 -------------------------------------------------------*/ floats[30],w[6]; fun1(floats[]) { intk,i; for(k=2,i=0;i<30;i++) { /**********FILL**********/ _____; k+=2; } } fun2(floats[],floatw[]) { floatsum=0.0; intk,i; for(k=0,i=0;i<30;i++) { sum+=s[i]; /**********FILL**********/ _____; { w[k]=sum/5; /**********FILL**********/ _____; k++; } } } main() { inti; fun1(s); /**********FILL**********/ _____; for(i=0;i<30;i++) { if(i%5==0)printf("\n"); printf("%8.2f",s[i]); } printf("\n"); for(i=0;i<6;i++) printf("%8.2f",w[i]); } 1.s[i]=ks[i]=(i+1)*22,if((i+1)%5==0)if((i+1)/5*5==i+1)3,sum=0sum=0.04fun2(s,w) 【程序填空】 --------------------------------------------------------- 题目: <<<题干内容>>> 给定程序中,函数fun的功能是: 统计出带有头结点的单向链表中结点的个数,存放在形参n所指的存储单元中。 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意: 源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行,也不得更改程序的结构! -------------------------------------------------------*/ #include #include #defineN8 typedefstructlist {intdata; structlist*next; }SLIST; SLIST*creatlist(int*a); voidoutlist(SLIST*); voidfun(SLIST*h,int*n) {SLIST*p; /**********FILL**********/ _____=0; p=h->next; while(p) {(*n)++; /**********FILL**********/ p=p->_____; } } main() {SLIST*head; inta[N]={12,87,45,32,91,16,20,48},num; head=creatlist(a);outlist(head); /**********FILL**********/ fun(_____,&num); printf("\nnumber=%d\n",num); } SLIST*creatlist(inta[]) {SLIST*h,*p,*q;inti; h=p=(SLIST*)malloc(sizeof(SLIST)); for(i=0;i {q=(SLIST*)malloc(sizeof(SLIST)); q->data=a[i];p->next=q;p=q; } p->next=0; returnh; } voidoutlist(SLIST*h) {SLIST*p; p=h->next; if(p==NULL)printf("ThelistisNULL! \n"); else {printf("\nHead"); do {printf("->%d",p->data);p=p->next;} while(p! =NULL); printf("->End\n"); } } 1,(*n)*n2.next3head
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 上机 试题 答案
![提示](https://static.bdocx.com/images/bang_tan.gif)