c语言模拟考

更新时间:2024-06-01 20:45:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

(一)填空, 在___N___中填空。

1.将数组x中原有数据为:1、-2、3、4、-5、6、-7,调用函数f后数组x中数据为:1、3、4、6、0、0、0,输出结果为:1 3 4 6。 #include

void f(int *a,___1___) { int i,j;

for(i=0;___2___; ) if(a[i]<0) {

for(j=i;j<*m-1;j++) ____3_____; a[*m-1]=0; (*m)--; }

else i++; }

void main()

{ int i,n=7,x[7]={1,-2,3,4,-5,6,-7}; ____4_____; for(i=0;i

2.输入10个数到数组a中,计算并显示所有元素的平均值,以及其中与平均值相差最小的数组元素值。 #include void main()

{ double a[10],v=0,x,d; int i; printf(\ for(i=0;i<10;i++) {

scanf(\ v=v+___2____; }

d=_____3_____; x=a[0]; for(i=1;i<10;i++)

if(fabs(a[i]-v)

3.循环输入正整数n(直到输入负数或者0结束),计算并显示满足条件2^m≤n≤2^(m+1)的m值。

#include

#define F (t<=n && t*2>=n) void main() { int m,t,n;

while(scanf(\{

m=0;___2___; while(___3___){ ___4___; m++; }

printf(\ } }

(二)改错, 在/*********** n**************/下一行有错,请改正。 7.显示两个数组中,数值相同的元素。 #include void main()

{ /******** 1 *******/

int i; int a[6]={1,3,5,7,9,11}; int b[7]={2,5,7,9,12,16,3}; /******* 2 *******/

for(i=0;i<=6;i++) { for(j=0;j<7;j++)

/******** 3 *******/

if(a[i]=b[j]) break; /******* 4 ********/ if(j>=7)

printf(\ }

printf(\ }

8.逐个显示字符串中各字符的机内码。提示:英文字符字母的机内码首位为0,汉字的每个字节首位为1。程序正确运行后,显示如下:a[0]的机内码为:0110001;a[1]的机内码为:00110010;a[2]的机内码为:10111010;a[3]的机内码为:10111010;a[4]的机内码为:11010111;a[5]的机内码为:11010110。 #include void main()

{ /******** 1 *******/

char a[7]='a2汉字'; ; int i,j,k;

/******** 2 *******/

for(i=0;i

printf(\的机内码为:\

for(j=1;j<=8;j++) { k=a[i]&0x80;

if(k!=0) putchar('1');

/****** 3 *****/

else putchar(0); /****** 4 *****/

a[i]=a[i]>>1; }

printf(\ } }

14.输入一个字符串,将组成字符串的所有非英文字母的字符删除后输出。 #include #include void main()

{ char str[81]; int i,flag; /******* 1 ******/

get(str);

for(i=0;str[i]!='\\0';) {

flag=tolower(str[i])>='a' && tolower(str[i])<='z'; /********* 2 *********/

flag=not flag;

if(flag) {

/******* 3 ********/

strcpy(str+i+1,str+i); /******* 4 ********/

break; } i++; }

printf(\ }

15.(1)输入一个整数mm作为密码,将字符串中每个字符与mm做一次按位异或操作进行加密,输出被加密后的字符串(密文),(2)再将密文的每个字符与mm做一次按位异或操作,输出解密后的字符串(明文)。 #include void main()

{ char a[]=\汉字\ int mm,i;

/******** 1 *******/ printf(“请输入密码:”); /******** 2 *******/

scanf(\

for(i=0;a[i]!='\\0';i++) /*各字符与mm作一次按位异或*/ a[i]=a[i]^mm; puts(a);

/*** 各字符与mm再作一次按位异或 ***/ /******** 3 *******/

for( ;a[i]!='\\0';i++) /****** 4 ******/

a[i]=a[i]^mm^mm; puts(a); }

三、设计

1.编制函数f计算下列表达式的值,函数main提供了一个测试用例。函数原型为double.f(double*,double,int) a0+a1sin(x)+a2sin(x^2)+a3sin(x^3)+??+an-1sin(x^n-1)。 #include #include

/*****考生在以下空白处编写函数f ******/

2.统计并显示500至800之间所有素数的点个数以及总和。 #include #include

/****考生在以下空白处写入执行语句 编写函数f判断与形参相应的实参是否素数****/

/****考生在以上空白处写入执行语句******/ printf(\素数个数%d 素数总和%d\\n\ fp=fopen(\

fwrite(&k,4,1,fp);fwrite(&s,4,1,fp); fclose(fp); }

本文来源:https://www.bwwdw.com/article/l5n6.html

Top