当前位置:文档之家› 模拟试题(四)

模拟试题(四)

14、为读写打开文本件a:\aa.dat,下列语句中哪一个是正确的()。
A、fp=fopen("a:\aa.dat","r+") B、fp=fopen("a:\aa.dat","a")
C、fp=fopen("a:\aa.dat","w") D、fp=fopen("a:\aa.dat","r")
二、填空题(14分)
模拟试题(四)
一、单项选择题(14分)
1、下列各个错误中,属于编译错误的是()。
A、数组下标超界B、"= ="误写为"="
C、死循环D、括号不配对
2、要为字符型变量a赋初值,下列语句中哪一个是正确的()。
A、char a='3'; B、char a="3";
C、char a=%; D、char a=*;
}
fclose(fp1);
fclose(fp2);

13、宏定义语句#define f(x,y) fopen (x,y)的引用f ("a.txt", "rw");置换展开后为fopen(“a..txt”,”rw”)
14、函数的实参为指针变量名时,虚参与实参结合的传递方式为。按地址传递
三、写出下列程序的输出结果(20分)
1、1 0 2 2 5 7 13 20
10、数组定义为"int a[4][5];",引用"*(a+1)+2"表示()。
A、a[1][0]+2 B、a数组第1行第2列元素的地址
C、a[0][1]+2 D、a数组第1行第2列元素的值
11、共用体定义"union date {char ch; int x;}a;",下列哪一个是不正确的语句()。
10、定义a为共有5个元素的一维整型数组、同时定义p为指向a数组地址的指针变量的语句为:。
11、定义语句为char a[] ="Boss",b[]="Boss";语句printf("%d",strcmp(a,b));输出结果是:。
12、定义语为char a[10] ="john\0ni";,语句printf("%d",strlen(a));输出结果是:。
10、定义a为共有5个元素的一维整型数组、同时定义p为指向a数组地址的指针变量的语句为:int a[5],*=a;
11、定义语句为char a[] ="Boss",b[]="Boss";语句printf("%d",strcmp(a,b));输出结果是:0
12、定义语为char a[10] ="john\0ni";,语句printf("%d",strlen(a));输出结果是:4
1、输入20个整数,输出其中能被组中其它元素之一整除的那些数组元素。
2、编写一个函数,在n个元素的一维数组中,统计比相邻元素大的数组元素个数并将统计数返回(不考虑a[0]和a[n–1]),要求以指针变量而不是数组名作参数。
3、把文本文件d1.dat复制到文本文件d2.dat中,要求仅复制d1.dat中除英文字符和数字以外的其它内容。
7、若a=13, b=25, c= -17,条件表达式((y= (a<b) ? a:b)< c)? y: c的值为: -17。
8、整型变量m的值为31,语句printf("m =%x",m);的输出结果为m=1f。
9、整型变量a、b的值分别为5、3,语句printf(″%d*%d=%d″,a,b,a*b);输出。5*3=15
int *p=a;
for(i=0;i<n;i++)
scanf("%d",p+i);
printf("%5d",fun(p,n,i));
}
3、#include<stdio.h>
FILE *fp1, *fp2;
main()
{char ch;
if(fp1=fopen("file1.dat", "r" )==NULL);
}
2、#include "stdio.h"
int fun(int *pp,int n,int i)
{int ss=0;
for(i=1;i<n-1;i++)
if(*(pp+i)>*(pp+i+1) && *(pp+i)>*(pp+i-1))
ss++;
return ss;
}Hale Waihona Puke main(){int a[20],i,j,n=10;
exit (0);
if((fp2=fopen("file2.dat", "w")= =NULL)
exit (0);
while( eof(fp1)!=0 )
{ch=fgetc(fp1);
if(isalnum(ch)==0) //检查ch是否是字符或数字,若是则值为1 ,否则为0
fputc (ch, fp);
for (i=0;i<7;i++) a[i]='a'+i;
for (i=0;i<3;i++)
{ temp= a[0]; for ( j=1;j<7;j++ ) a[j-1]= a[j];a[6]= temp;a[7] = '\0';
printf ("%s\n",a);}
}输出结果:
3、#include "stdio.h"
int fun3(int m)
{int i;
if(m==2||m==3) return 1;
if(m<2||m%2==0) return 0;
for (i=3;i<m;i=i+2) if(m%i==0) return 0 ;
return 1;
}
void main()
{int n;
for (n=1;n<10;n++) if(fun3(n)==1) printf("%d\n",n);
模拟测试试卷(四)参考答案
一、单项选择题(14分)
1、D 2、A 3、A 4、D 5、B 6、B 7、D 8、C 9、C 10、B 11、B
12、D 13、D 14、A
二、填空题(14分)
1.设int x=17,y=5;执行语句x* =x+ +/ - -y后x的值为69。
2、已知直角三角形的直角边长a,b,计算其面积的算术表达式为x*y/2.0。
}
输出结果:
四、根据下列各编程题题意填空(22分)
1、输入若干字符,分别统计数字字符的个数、英文字母的个数,当输入换行符时输出统计结果,运行结束。
#include <stdio.h>
void main()
{ char ch;
while(()!='\n')
{if(ch>='0'&&ch<='9') s1++;
3、对C程序在作逻辑运算时判断操作数真、假的表述,下列哪一个是正确的()。
A、0为假,非0为真B、只有1为真
C、-1为假,1为真C、0为真,非0为假
4、为float类型变量a、b输入数据1.2和2.3,下列哪一组是正确的()。
A、scanf(%f%f,&a,&b);输入1.2,2.3
B、scanf(″%f2.1%f2.1″,a,b);输入12,23
if(ch>='a' && ch<='z')s2++;}
;
}
2、下列函数输出一行字符:先输出kb个空格,再输出n个指定字符(由实参指定)
#include <stdio.h>
void print()
{int i;
for (i=1;i<=kb;i++);
for (i=1;i<=n;i++)
}
五、编程题(30分)
A、#define muit(u,v) u*v B、#define muit(u,v)= u*v
C、#define muit(u,v) (u)*(v) D、#define muit(u,v)=(u)*(v)
9、假如指针P已经指向某个整型变量x,则&*P相当于()。
A、x B、* P C、&x D、* * p
五、编程题(30分)
1、
#include "stdio.h"
main()
{int a[20],i,j;
for(i=0;i<20;i++)
scanf("%d",&a[i]);
for(i=0;i<20;i++)
for(j=0;j<20;j++)
if(i!=j && a[i]%a[j]==0){printf("%d %d\n",a[i]);break;}
2、bcdefga
cdefgab
defgabc
相关主题