资源描述
1. 由终端输入两个整数变量X和Y,然后输出X和Y,在交换X和Y的值后,再输出X和Y,验证两个变量中的数是否正确地进行了交换。
程序代码:
/*********************************************************************
* C语言编程测试题1 *
* 由终端输入两个整数变量X和Y,然后输出X和Y,在交换X和Y的值后,再 *
* 输出X和Y,验证两个变量中的数是否正确地进行了交换。 *
*********************************************************************/
#include<stdio.h>
void main()
{
int x, y, t;
/*提示 输入 输出*/
printf("请输入X Y(空格 Tab 回车 间隔)\n");
scanf("%d%d", &x, &y );
printf("\n\n交换前:\n");
printf("X = %d \t Y = %d\n", x, y );
/*交换 输出*/
printf("\n交换后:\n");
t = x; x = y; y = t;
printf("X = %d \t Y = %d\n\n\n", x, y );
}
2. 输入三个整数,分别放在变量a、b、c中,程序把输入的数据重新按由小到大的顺序放在变量a、b、c中,最后输出a、b、c中的值。
程序代码:
/**********************************************************************
* C语言编程测试题2 *
* 输入三个整数,分别放在变量a、b、c中,程序把输入的数据重新按 *
* 由小到大的顺序放在变量a、b、c中,最后输出a、b、c中的值。 *
**********************************************************************/
#include<stdio.h>
void main()
{
int a, b, c, t;
/*提示 输入 输出*/
printf("输入a、b、c( 空格 Tab 回车 分割 )\n");
scanf("%d%d%d", &a, &b, &c );
printf("\n\n排序前:\n");
printf("a = %-8d b = %-8d c = %-8d \n", a, b, c );
/*排序 输出*/
if( a > b ) { t = a; a = b; b = t; }
if( a > c ) { t = a; a = c; c = t; }
if( b > c ) { t = b; b = c; c = t; }
printf("\n\n排序后:\n\n");
printf("a = %-8d b = %-8d c = %-8d \n\n", a, b, c );
}
3. 裴波那契数列(Fibonacci)的前几项是:1、1、2、3、5、8、13、21、34......。编程输出该数列的前13项。每行输出5个数。
程序代码:
/*********************************************************************
* C语言编程测试题3 *
* 裴波那契数列(Fibonacci)的前几项是:1、1、2、3、5、8、13、21、 *
* 34......。编程输出该数列的前13项。每行输出5个数。 *
*********************************************************************/
#include<stdio.h>
#define MAX 13
void main()
{
int x1 = 1, x2 = 1, t, n;
for( n = 0 ; n < MAX ; n ++ )
{
if( ( n % 5 ) == 0 ) /*换行判定*/
printf("\n");
printf("%6d",x1 ); /*数值输出*/
/*数值生成*/
t = x1;
x1 = x2;
x2 += t;
t = 0;
}
printf("\n\n");
}
4. 编写程序,输出26个英文大写字母和它们的ASCII代码。每行输出两组数据。
程序代码:
/*********************************************************************
* C语言编程测试题4 *
* 编写程序,输出26个英文大写字母和它们的ASCII代码。每行输出两 *
* 组数据。 *
*********************************************************************/
#include<stdio.h>
void main()
{
char c ;
for( c = 'A'; c <= 'Z'; c ++ )
{
/*换行判定*/
if( ((c-'A') % 2 ) == 0)
printf("\n");
/*字母及ASCII输出*/
printf("%c => %d\t ", c, c );
}
printf("\n\n\n");
}
5. 编写函数isprime(int a)用来判断自变量a是否为素数,若是素数,函数返回1,否则返回0.
程序代码:
/*********************************************************************
* C语言编程测试题5 *
* 编写函数isprime(int a)用来判断自变量a是否为素数,若是素数, *
* 函数返回1,否则返回0. *
*********************************************************************/
#include<stdio.h>
/*主函数用来作为测试程序*/
void main()
{
int n, z;
int isprime(int a); //函数声明
for( n = 2; n <99; n ++ )
{
z = isprime(n);
if( z )
printf("%d\t", n);
}
printf("\n\n");
}
int isprime(int a)
{
int i, z = 1;
for( i = 2; i*i <= a; i ++ )
{
if( (a % i) == 0 )
z = 0;
}
return z;
}
6. 用指针指向两个变量,通过指针运算选出小的那个数。
程序代码:
/*********************************************************************
* C语言编程测试题6 *
* 用指针指向两个变量,通过指针运算选出小的那个数。 *
*********************************************************************/
#include<stdio.h>
#define MIN 10
#define MAX 100 /*这里的 MAX MIN 只是用作标识无其他含义*/
void main()
{
int x1 = MIN, x2 = MAX, *p, *q;
p = &x1;
q = &x2;
if( *p < *q )
printf("较小的数是%d", *p );
else if( *p == *q )
printf("俩个数相等");
else
printf("较小的数是%d", *q );
printf("\n\n");
}
7.编写程序,打印以下形式的杨辉三角形。
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
1 6 15 20 15 6 1
程序代码:
/*********************************************************************
* C语言编程测试题8 *
* 编写函数slength(char *s),函数返回指针s所指字符串的长度, *
* 即:相当于库函数strlen的功能。 *
*********************************************************************/
#include<stdio.h>
#define Size 100 /*表示最大可输入字符串长度*/
/*主函数用作测试程序*/
void main()
{
int l;
char a[Size], *s;
int slength(char *s);/*函数声明*/
/*提示 输入*/
printf("请输入字符串\n");
gets(a);
/*调用 输出*/
s = &a[0];
l = slength(s);
printf("\n\n%d", l );
printf("\n\n");
}
/*目标程序 返回字符串长度*/
int slength(char *s)
{
int l = 0,n;
for( n = 0; *(s + n) != '\0'; n ++) l++; /*核心语句*/
return l;
}
9.使用结构体,读入五位用户的姓名和电话号码,按姓名的字典顺序排序后,输出用户的姓名和电话号码。
程序代码:
/**********************************************************************
* C语言编程测试题9 *
* 使用结构体,读入五位用户的姓名和电话号码,按姓名的字典顺序排 *
* 序后,输出用户的姓名和电话号码。 *
**********************************************************************/
#include<stdio.h>
#include<string.h> /*程序中使用到了strcmp()*/
#define Name_num 15 /*名字最大长度*/
#define Phone_long 15 /*电话号码最大长度*/
#define S_num 5 /*支持的最大学生数*/
/*结构体定义*/
struct student
{
char Name[Name_num];
char P_num[Phone_long];
};
/*该程序输入的学生信息学生名字必须为英文活拼音,且中间不能有空格*/
void main()
{
struct student students[S_num], t;
int i,j;
/*提示 输入*/
printf("按顺序输入学生姓名、电话号码(空格 Tab 回车 分割)\n");
for( i = 0; i < S_num; i ++ )
scanf("%s%s",students[i].Name, students[i].P_num );
/*排序*/
for( i = 0; i < ( S_num-1 ); i ++ )
for( j = i+1; j < S_num; j ++ )
{
if( strcmp(students[i].Name,students[j].Name) > 0 )
{
t = students[i];
students[i] = students[j];
students[j] = t;
}
}
/*提示 输出*/
printf("\n\nName\t\tPhoneNumber\n\n");
for( i =0;i < S_num; i ++ )
printf("%-15s\t%s\n", students[i].Name, students[i].P_num );
printf("\n\n");
}
10.从键盘输入10个浮点数,以二进制形式存入文件中,再从文件中读出数据显示在屏幕上。修改文件中第四个数。再从文件中读出数据显示在屏幕上,以验证修改是否正确。
程序代码:
/*********************************************************************
* C语言编程测试题10 *
* 从键盘输入10个浮点数,以二进制形式存入文件中,再从文件中读出 *
* 数据显示在屏幕上。修改文件中第四个数。再从文件中读出数据显示 *
* 在屏幕上,以验证修改是否正确。 *
*********************************************************************/
#include<stdio.h>
#include<Windows.h>
#define Num 10
#define Change 4
void main()
{
int p = Change-1;
int float_num_save();
int float_num_show();
int float_num_chang( int p );
/*调用函数实现输入并存入文件*/
if( float_num_save() != 1 )
{
printf("Write is Error.\n");
exit(0);
}
/*调用函数从文件中读数据显示到屏幕*/
if(float_num_show() != 1)
{
printf("Show is Error.\n");
exit(0);
}
/*改变第四个数*/
if( float_num_chang( p ) != 1 )
{
printf("Change is Error.\n");
exit(0);
}
/*调用函数从文件中读修改过的数据显示到屏幕*/
if(float_num_show() != 1)
{
printf("Show is Error.\n");
exit(0);
}
}
/*用于输入 存储*/
int float_num_save()
{
int i;
float f;
FILE *fp;
if((fp = fopen("float_fds.dat","wb")) == NULL ) /*以二进制写方式打开文件*/
{
printf("file created error.\n");
return 0;
}
printf("请输入浮点数\n");
for( i = 0; i < Num; i ++ ) /*写信息*/
{
scanf("%f", &f );
if(fwrite( &f, sizeof(f), 1,fp ) != 1 )
{
printf("write is error.\n");
return 0;
}
}
fclose(fp);/*释放指针*/
return 1;
}
/*用于显示文件中的数*/
int float_num_show()
{
FILE *fp;
float f;
int i;
if((fp=fopen("float_fds.dat","rb")) == NULL ) /*以二进制打开文件*/
{
printf("File open is error.\n");
return 0;
}
/*显示部分*/
for( i = 0; i < Num; i ++ )
{
if( fread( &f, sizeof(f), 1, fp ) != 1 )
{
printf("Read is Error.\n");
return 0;
}
if( i%5 == 0 )
printf("\n");
printf("%-10g", f);
}
printf("\n\n"); /*换行美化界面*/
fclose(fp); /*释放指针*/
return 1;
}
/*用于改变指定位置的数*/
int float_num_chang( int p )
{
float f;
FILE *fp;
if((fp=fopen("float_fds.dat","rb+")) == NULL )
{
printf("File open Error.\n");
return 0;
}
if(fseek( fp, (long)(p*sizeof(f)), 0 ) == -1)
{
printf("Move is Error.\n");
return 0;
}
printf("请输入要在第%d个位置上修改的数\n=>", Change );
scanf("%f", &f );
if(fwrite( &f, sizeof(f), 1, fp ) != 1 )
{
printf("Change is Error.\n");
return 0;
}
fclose(fp); /*释放指针*/
return 1;
}
原创作者:№苍狼№
QQ:694378418
2012.9.21
展开阅读全文