2013年3月计算机二级C语言上机题库
更新时间:2023-05-15 18:44:01 阅读量: 实用文档 文档下载
2013年3月计算机二级C语言上机题库
第01套:
给定程序中,函数fun的功能是:将形参n所指变量中,各位上为偶数的数去
除,剩余的数按原来从高位到低位的顺序组成一个新的数,并通过形参指针n传回 所指变量。
例如,输入一个数:27638496,新的数:为739。
请在程序的下划线处填入正确的内容并把下划线删除, 使程序得出正确的结
果。
注意:源程序存放在考生文件夹下的BLANK1.C中。
不得增行或删行,也不得更改程序的结构!
给定源程序:
#include <stdio.h>
void fun(unsigned long *n)
{ unsigned long x=0, i; int t;
i=1;
while(*n)
/**********found**********/
{ t=*n % __1__;
/**********found**********/
if(t%2!= __2__)
{ x=x+t*i; i=i*10; }
*n =*n /10;
}
/**********found**********/
*n=__3__;
}
main()
{ unsigned long n=-1;
while(n>99999999||n<0)
{ printf("Please input(0<n<100000000): "); scanf("%ld",&n); }
fun(&n);
printf("\nThe result is: %ld\n",n);
}
解题思路:
第一处:t是通过取模的方式来得到*n的个位数字,所以应填:10。
第二处:判断是否是奇数,所以应填:0。
第三处:最后通形参n来返回新数x,所以应填:x。
***************************************************
给定程序MODI1.C中函数 fun 的功能是:计算n!。
例如,给n输入5,则输出120.000000。
请改正程序中的错误,使程序能输出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
2013年3月计算机二级C语言上机题库
给定源程序:
#include <stdio.h>
double fun ( int n )
{ double result = 1.0 ;
/************found************/
if n = = 0
return 1.0 ;
while( n >1 && n < 170 )
/************found************/
result *= n--
return result ;
}
main ( )
{ int n ;
printf("Input N:") ;
scanf("%d", &n) ;
printf("\n\n%d! =%lf\n\n", n, fun(n)) ;
}
解题思路:
第一处:条件语句书写格式错误,应改为:if (n==0)。
第二处:语句后缺少分号。
***************************************************
请编写一个函数fun,它的功能是:将一个数字字符串转换为一个整数(不得
调用C语言提供的将字符串转换为整数的函数)。例如,若输入字符串"-1234",则 函数把它转换为整数值 -1234。函数fun中给出的语句仅供参考。
注意: 部分源程序存在文件PROG1.C文件中。
请勿改动主函数main和其它函数中的任何内容, 仅在函数fun的花括号中填
入你编写的若干语句。
给定源程序:
#include <stdio.h>
#include <string.h>
long fun ( char *p)
{
/* 以下代码仅供参考 */
int i, len, t; /* len为串长,t为正负标识 */
long x=0;
len=strlen(p);
if(p[0]=='-')
2013年3月计算机二级C语言上机题库
else t=1;
/* 以下完成数字字符串转换为一个数字 */
return x*t;
}
main() /* 主函数 */
{ char s[6];
long n;
printf("Enter a string:\n") ;
gets(s);
n = fun(s);
printf("%ld\n",n);
NONO ( );
}
NONO ( )
{/* 本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。
FILE *fp, *wf ;
int i ;
char s[20] ;
long n ;
fp = fopen("c:\\test\\in.dat","r") ;
wf = fopen("c:\\test\\out.dat","w") ;
for(i = 0 ; i < 10 ; i++) {
fscanf(fp, "%s", s) ;
n = fun(s);
fprintf(wf, "%ld\n", n) ;
}
fclose(fp) ;
fclose(wf) ;
}
解题思路:
本题是将一个数字字符串转换为一个整数。
参考答案:
#include <stdio.h>
#include <string.h>
long fun ( char *p)
{
/* 以下代码仅供参考 */
int i, len, t; /* len为串长,t为正负标识 */
long x=0;
len=strlen(p);
if(p[0]=='-') */
2013年3月计算机二级C语言上机题库
else t=1;
/* 以下完成数字字符串转换为一个数字 */
while(*p) x = x*10-48+(*p++);
return x*t;
}
main() /* 主函数 */
{ char s[6];
long n;
printf("Enter a string:\n") ;
gets(s);
n = fun(s);
printf("%ld\n",n);
NONO ( );
}
NONO ( )
{/* 本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。 */
FILE *fp, *wf ;
int i ;
char s[20] ;
long n ;
fp = fopen("c:\\test\\in.dat","r") ;
wf = fopen("c:\\test\\out.dat","w") ;
for(i = 0 ; i < 10 ; i++) {
fscanf(fp, "%s", s) ;
n = fun(s);
fprintf(wf, "%ld\n", n) ;
}
fclose(fp) ;
fclose(wf) ;
}
注意:由于NONO( )这个函数是改卷人用的,与考生没有什么关系,故下面从第2套试题开始均省略NONO( )
※※※※※※※※※※※※※※※※※※※※※※※※※
第02套:
给定程序中,函数fun的功能是将形参给定的字符串、整数、浮点数写到文本
文件中,再用字符方式从此文本文件中逐个读入并显示在终端屏幕上。
2013年3月计算机二级C语言上机题库
请在程序的下划线处填入正确的内容并把下划线删除, 使程序得出正确的结
果。
注意:源程序存放在考生文件夹下的BLANK1.C中。
不得增行或删行,也不得更改程序的结构!
给定源程序:
#include <stdio.h>
void fun(char *s, int a, double f)
{
/**********found**********/
__1__ fp;
char ch;
fp = fopen("file1.txt", "w");
fprintf(fp, "%s %d %f\n", s, a, f);
fclose(fp);
fp = fopen("file1.txt", "r");
printf("\nThe result :\n\n");
ch = fgetc(fp);
/**********found**********/
while (!feof(__2__)) {
/**********found**********/
putchar(__3__); ch = fgetc(fp); }
putchar('\n');
fclose(fp);
}
main()
{ char a[10]="Hello!"; int b=12345;
double c= 98.76;
fun(a,b,c);
}
解题思路:
本题是考察先把给定的数据写入到文本文件中,再从该文件读出并显示在屏幕上。 第一处:定义文本文件类型变量,所以应填:FILE *。
第二处:判断文件是否结束,所以应填:fp。
第三处:显示读出的字符,所以应填:ch。
***************************************************
给定程序MODI1.C中函数fun的功能是: 依次取出字符串中所有数字字符, 形
成新的字符串, 并取代原字符串。
请改正函数fun中指定部位的错误, 使它能得出正确的结果。
注意: 不要改动main函数, 不得增行或删行, 也不得更改程序的结构!
给定源程序:
2013年3月计算机二级C语言上机题库
#include <stdio.h>
void fun(char *s)
{ int i,j;
for(i=0,j=0; s[i]!='\0'; i++)
if(s[i]>='0' && s[i]<='9')
/**********found**********/
s[j]=s[i];
/**********found**********/
s[j]="\0";
}
main()
{ char item[80];
printf("\nEnter a string : ");gets(item);
printf("\n\nThe string is : \"%s\"\n",item);
fun(item);
printf("\n\nThe string of changing is : \"%s\"\n",item );
}
解题思路:
第一处: 要求是取出原字符串中所有数字字符组成一个新的字符串,程序中是使用变量j 来控制新字符串的位置,所以应改为:s[j++]=s[i];。
第二处: 置新字符串的结束符,所以应改为:s[j]='\0';.
***************************************************
请编写函数fun, 函数的功能是: 将M行N列的二维数组中的字符数据, 按列的
顺序依次放到一个字符串中。
例如, 二维数组中的数据为:
W W W W
S S S S
H H H H
则字符串中的内容应是: WSHWSHWSH。
注意:部分源程序在文件PROG1.C中。
请勿改动主函数main和其它函数中的任何内容, 仅在函数fun的花括号中填入
你编写的若干语句。
给定源程序:
#include <stdio.h>
#define M 3
#define N 4
void fun(char s[][N], char *b)
{
int i,j,n=0;
for(i=0; i < N;i++) /* 请填写相应语句完成其功能 */
{
}
2013年3月计算机二级C语言上机题库
b[n]='\0';
}
main()
{ char a[100],w[M][N]={{'W','W','W','W'},{'S','S','S','S'},{'H','H','H','H'}};
int i,j;
printf("The matrix:\n");
for(i=0; i<M; i++)
{ for(j=0;j<N; j++)printf("%3c",w[i][j]);
printf("\n");
}
fun(w,a);
printf("The A string:\n");puts(a);
printf("\n\n");
NONO();
}
解题思路:
本题是把二维数组中的字符数据按列存放到一个字符串中。
1. 计算存放到一维数组中的位置。
2. 取出二维数组中的字符存放到一维数组(已计算出的位置)中。
参考答案:
void fun(char s[][N], char *b)
{
int i,j,n=0;
for(i=0; i < N;i++) /* 请填写相应语句完成其功能 */
{
for(j = 0 ; j < M ; j++) {
b[n] = s[j][i] ;
n = i * M + j + 1;
}
}
b[n]='\0';
}
※※※※※※※※※※※※※※※※※※※※※※※※※
第03套:
程序通过定义学生结构体变量,存储了学生的学号、姓名和3门课的成绩。所
有学生数据均以二进制方式输出到文件中。函数fun的功能是重写形参filename所 指文件中最后一个学生的数据,即用新的学生数据覆盖该学生原来的数据,其它学 生的数据不变。
请在程序的下划线处填入正确的内容并把下划线删除, 使程序得出正确的结
果。
2013年3月计算机二级C语言上机题库
注意:源程序存放在考生文件夹下的BLANK1.C中。
不得增行或删行,也不得更改程序的结构!
给定源程序:
#include <stdio.h>
#define N 5
typedef struct student {
long sno;
char name[10];
float score[3];
} STU;
void fun(char *filename, STU n)
{ FILE *fp;
/**********found**********/
fp = fopen(__1__, "rb+");
/**********found**********/
fseek(__2__, -1L*sizeof(STU), SEEK_END);
/**********found**********/
fwrite(&n, sizeof(STU), 1, __3__);
fclose(fp);
}
main()
{ STU t[N]={ {10001,"MaChao", 91, 92, 77}, {10002,"CaoKai", 75, 60, 88},
{10003,"LiSi", 85, 70, 78}, {10004,"FangFang", 90, 82, 87},
{10005,"ZhangSan", 95, 80, 88}};
STU n={10006,"ZhaoSi", 55, 70, 68}, ss[N];
int i,j; FILE *fp;
fp = fopen("student.dat", "wb");
fwrite(t, sizeof(STU), N, fp);
fclose(fp);
fp = fopen("student.dat", "rb");
fread(ss, sizeof(STU), N, fp);
fclose(fp);
printf("\nThe original data :\n\n");
for (j=0; j<N; j++)
{ printf("\nNo: %ld Name: %-8s Scores: ",ss[j].sno, ss[j].name);
for (i=0; i<3; i++) printf("%6.2f ", ss[j].score[i]);
printf("\n");
}
fun("student.dat", n);
printf("\nThe data after modifing :\n\n");
fp = fopen("student.dat", "rb");
fread(ss, sizeof(STU), N, fp);
2013年3月计算机二级C语言上机题库
for (j=0; j<N; j++)
{ printf("\nNo: %ld Name: %-8s Scores: ",ss[j].sno, ss[j].name);
for (i=0; i<3; i++) printf("%6.2f ", ss[j].score[i]);
printf("\n");
}
}
解题思路:
本题是考察如何从文件中读出数据,再把结构中的数据写入文件中。
第一处:从指定的文件中读出数据,所以应填:filename。
第二处:读取文件fp的最后一条记录,所以应填:fp。
第三处:再把读出的记录,写入文件fp指定的位置上,所以应填:fp。
***************************************************
给定程序MODI1.C中的函数Creatlink的功能是创建带头结点的单向链表, 并
为各结点数据域赋0到m-1的值。
请改正函数Creatlink中指定部位的错误, 使它能得出正确的结果。
注意: 不要改动main函数, 不得增行或删行, 也不得更改程序的结构!
给定源程序:
#include <stdio.h>
#include <stdlib.h>
typedef struct aa
{ int data;
struct aa *next;
} NODE;
NODE *Creatlink(int n, int m)
{ NODE *h=NULL, *p, *s;
int i;
/**********found***********/
p=(NODE )malloc(sizeof(NODE));
h=p;
p->next=NULL;
for(i=1; i<=n; i++)
{ s=(NODE *)malloc(sizeof(NODE));
s->data=rand()%m; s->next=p->next;
p->next=s; p=p->next;
}
/**********found***********/
return p;
}
outlink(NODE *h)
2013年3月计算机二级C语言上机题库
p=h->next;
printf("\n\nTHE LIST :\n\n HEAD ");
while(p)
{ printf("->%d ",p->data);
p=p->next;
}
printf("\n");
}
main()
{ NODE *head;
head=Creatlink(8,22);
outlink(head);
}
解题思路:
第一处: 指向刚分配的结构指针,所以应改为:p=(NODE *)malloc(sizeof(NODE));
第二处: 在动态分配内存的下一行语句是,使用临时结构指针变量h保存p指针的初始位置, 最后返回不能使用p,是因为p的位置已经发生了变化,所以应改为返回h。
***************************************************
请编写函数fun, 函数的功能是:统计一行字符串中单词的个数,作为函数值返
回。一行字符串在主函数中输入, 规定所有单词由小写字母组成,单词之间由若干 个空格隔开, 一行的开始没有空格。
注意:部分源程序在文件PROG1.C中。
请勿改动主函数main和其它函数中的任何内容, 仅在函数fun的花括号中填入
你编写的若干语句。
给定源程序:
#include <stdio.h>
#include <string.h>
#define N 80
int fun( char *s)
{
}
main()
{ char line[N]; int num=0;
printf("Enter a string :\n"); gets(line);
num=fun( line );
printf("The number of word is : %d\n\n",num);
NONO();
}
解题思路:
本题是统计字符串中的单词数。
2013年3月计算机二级C语言上机题库
1. 利用while循环语句和指针变量,当字符为空格时,则单词数k加1。
2. 循环结束返回k。
参考答案:
int fun( char *s)
{
int k = 1 ;
while(*s) {
if(*s == ' ') k++ ;
s++ ;
}
return k ;
}
※※※※※※※※※※※※※※※※※※※※※※※※※
第04套:
程序通过定义学生结构体变量,存储了学生的学号、姓名和3门课的成绩。所
有学生数据均以二进制方式输出到文件中。函数fun的功能是从形参filename所指 的文件中读入学生数据,并按照学号从小到大排序后,再用二进制方式把排序后的 学生数据输出到filename所指的文件中,覆盖原来的文件内容。
请在程序的下划线处填入正确的内容并把下划线删除, 使程序得出正确的结
果。
注意:源程序存放在考生文件夹下的BLANK1.C中。
不得增行或删行,也不得更改程序的结构!
给定源程序:
#include <stdio.h>
#define N 5
typedef struct student {
long sno;
char name[10];
float score[3];
} STU;
void fun(char *filename)
{ FILE *fp; int i, j;
STU s[N], t;
/**********found**********/
fp = fopen(filename, __1__);
fread(s, sizeof(STU), N, fp);
fclose(fp);
for (i=0; i<N-1; i++)
for (j=i+1; j<N; j++)
/**********found**********/
if (s[i].sno __2__ s[j].sno)
{ t = s[i]; s[i] = s[j]; s[j] = t; }
2013年3月计算机二级C语言上机题库
fp = fopen(filename, "wb");
/**********found**********/
__3__(s, sizeof(STU), N, fp); /* 二进制输出 */
fclose(fp);
}
main()
{ STU t[N]={ {10005,"ZhangSan", 95, 80, 88}, {10003,"LiSi", 85, 70, 78},
{10002,"CaoKai", 75, 60, 88}, {10004,"FangFang", 90, 82, 87},
{10001,"MaChao", 91, 92, 77}}, ss[N];
int i,j; FILE *fp;
fp = fopen("student.dat", "wb");
fwrite(t, sizeof(STU), 5, fp);
fclose(fp);
printf("\n\nThe original data :\n\n");
for (j=0; j<N; j++)
{ printf("\nNo: %ld Name: %-8s Scores: ",t[j].sno, t[j].name);
for (i=0; i<3; i++) printf("%6.2f ", t[j].score[i]);
printf("\n");
}
fun("student.dat");
printf("\n\nThe data after sorting :\n\n");
fp = fopen("student.dat", "rb");
fread(ss, sizeof(STU), 5, fp);
fclose(fp);
for (j=0; j<N; j++)
{ printf("\nNo: %ld Name: %-8s Scores: ",ss[j].sno, ss[j].name);
for (i=0; i<3; i++) printf("%6.2f ", ss[j].score[i]);
printf("\n");
}
}
解题思路:
本题是考察把结构中的数据写入文件。
第一处:建立文件的类型,考虑到是把结构中的数据(结构中的数据包含不打印的字符) 从文件中读出,所以应填:"rb"。
第二处:判断当前学号是否大于刚读出的学号进行相比,如果大于,则进行交换,所以应 填:>。
第三处:把已排序的结构数据,重新写入文件,所以应填:fwrite。
***************************************************
给定程序MODI1.C中函数fun的功能是: 在字符串的最前端加入n个*号, 形成
新串, 并且覆盖原串。
2013年3月计算机二级C语言上机题库
注意: 字符串的长度最长允许为79。
请改正函数fun中指定部位的错误, 使它能得出正确的结果。
注意: 不要改动main函数, 不得增行或删行, 也不得更改程序的结构!
给定源程序:
#include <stdio.h>
#include <string.h>
void fun ( char s[], int n )
{
char a[80] , *p;
int i;
/**********found***********/
s=p;
for(i=0; i<n; i++) a[i]='*';
do
{ a[i]=*p;
i++;
}
/**********found***********/
while(*p++)
a[i]=0;
strcpy(s,a);
}
main()
{ int n; char s[80];
printf("\nEnter a string : "); gets(s);
printf("\nThe string \"%s\"\n",s);
printf("\nEnter n ( number of * ) : "); scanf("%d",&n);
fun(s,n);
printf("\nThe string after insert : \"%s\" \n" ,s);
}
解题思路:
第一处: 指针p应指向s,所以应改为:p=s;。
第二处: 死循环,当do while循环执行一次,临时变量p应该指向字符串的下一位置,所以 应改为:while(*p++);。
***************************************************
请编写函数fun,函数的功能是:统计各年龄段的人数。N个年龄通过调用随机
函数获得,并放在主函数的age数组中;要求函数把0至9岁年龄段的人数放在d[0] 中,把10至19岁年龄段的人数放在d[1]中,把20至29岁年龄段的人数放在d[2]中, 其余依此类推, 把100岁 (含100)以上年龄的人数都放在d[10]中。结果在主函数
中输出。
注意:部分源程序在文件PROG1.C中。
请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入
2013年3月计算机二级C语言上机题库
你编写的若干语句。
给定源程序:
#include <stdio.h>
#define N 50
#define M 11
void fun( int *a, int *b)
{
}
double rnd()
{ static t=29,c=217,m=1024,r=0;
r=(r*t+c)%m; return((double)r/m);
}
main()
{ int age[N], i, d[M];
for(i=0; i<N;i++)age[i]=(int)(115*rnd());
printf("The original data :\n");
for(i=0;i<N;i++) printf((i+1)%10==0?"%4d\n":"%4d",age[i]);
printf("\n\n");
fun( age, d);
for(i=0;i<10;i++)printf("%4d---%4d : %4d\n",i*10,i*10+9,d[i]);
printf(" Over 100 : %4d\n",d[10]);
NONO(d);
}
解题思路:
本题是统计各年龄段的人数。
1. 初始化各年龄段人数为0。
2. 使用for循环以及求出各年龄的十位数字作为存放人数的地址,如果大于值大于10,则 存入d[10]中(大于110岁的人)。
参考答案:
void fun( int *a, int *b)
{
int i, j ;
for(i = 0 ; i < M ; i++) b[i] = 0 ;
for(i = 0 ; i < N ; i++) {
j = a[i] / 10 ;
if(j > 10) b[M - 1]++ ; else b[j]++ ;
}
}
double rnd()
{ static t=29,c=217,m=1024,r=0;
r=(r*t+c)%m; return((double)r/m);
2013年3月计算机二级C语言上机题库
}
※※※※※※※※※※※※※※※※※※※※※※※※※
第05套:
给定程序中,函数fun的功能是将参数给定的字符串、整数、浮点数写到文本
文件中,再用字符串方式从此文本文件中逐个读入,并调用库函数atoi和atof将 字符串转换成相应的整数、浮点数,然后将其显示在屏幕上。
请在程序的下划线处填入正确的内容并把下划线删除, 使程序得出正确的结
果。
注意:源程序存放在考生文件夹下的BLANK1.C中。
不得增行或删行,也不得更改程序的结构!
给定源程序:
#include <stdio.h>
#include <stdlib.h>
void fun(char *s, int a, double f)
{
/**********found**********/
__1__ fp;
char str[100], str1[100], str2[100];
int a1; double f1;
fp = fopen("file1.txt", "w");
fprintf(fp, "%s %d %f\n", s, a, f);
/**********found**********/
__2__ ;
fp = fopen("file1.txt", "r");
/**********found**********/
fscanf(__3__,"%s%s%s", str, str1, str2);
fclose(fp);
a1 = atoi(str1);
f1 = atof(str2);
printf("\nThe result :\n\n%s %d %f\n", str, a1, f1);
}
main()
{ char a[10]="Hello!"; int b=12345;
double c= 98.76;
fun(a,b,c);
}
解题思路:
本题是考察先把给定的数据写入到文本文件中,再从该文件读出并转换成相应的整数、浮 点数显示在屏幕上。
第一处:定义文本文件类型变量,所以应填:FILE *。
第二处:关闭刚写入的文件,所以应填:fclose(fp)。
2013年3月计算机二级C语言上机题库
第三处:从文件中读出数据,所以应填:fp。
***************************************************
给定程序MODI1.C中函数fun的功能是: 对N名学生的学习成绩,按从高到低的 顺序找出前m(m≤10)名学生来, 并将这些学生数据存放在一个动态分配的连续存 储区中, 此存储区的首地址作为函数值返回。
请改正函数fun中指定部位的错误, 使它能得出正确的结果。
注意: 不要改动main函数, 不得增行或删行, 也不得更改程序的结构!
给定源程序:
#include <stdio.h>
#include <alloc.h>
#include <string.h>
#define N 10
typedef struct ss
{ char num[10];
int s;
} STU;
STU *fun(STU a[], int m)
{ STU b[N], *t;
int i,j,k;
/**********found**********/
t=(STU *)calloc(sizeof(STU),m)
for(i=0; i<N; i++) b[i]=a[i];
for(k=0; k<m; k++)
{ for(i=j=0; i<N; i++)
if(b[i].s > b[j].s) j=i;
/**********found**********/
t(k)=b(j);
b[j].s=0;
}
return t;
}
outresult(STU a[], FILE *pf)
{ int i;
for(i=0; i<N; i++)
fprintf(pf,"No = %s Mark = %d\n", a[i].num,a[i].s);
fprintf(pf,"\n\n");
}
main()
{ STU a[N]={ {"A01",81},{"A02",89},{"A03",66},{"A04",87},{"A05",77},
{"A06",90},{"A07",79},{"A08",61},{"A09",80},{"A10",71} };
2013年3月计算机二级C语言上机题库
STU *pOrder;
int i, m;
printf("***** The Original data *****\n");
outresult(a, stdout);
printf("\nGive the number of the students who have better score: ");
scanf("%d",&m);
while( m>10 )
{ printf("\nGive the number of the students who have better score: ");
scanf("%d",&m);
}
pOrder=fun(a,m);
printf("***** THE RESULT *****\n");
printf("The top :\n");
for(i=0; i<m; i++)
printf(" %s %d\n",pOrder[i].num , pOrder[i].s);
free(pOrder);
}
解题思路:
第一处: 语句最后缺少分号。
第二处: 应该使用方括号,而不是圆括号。
像此类,使用编译,即可发现。
***************************************************
请编写函数fun, 函数的功能是: 删去一维数组中所有相同的数, 使之只剩一
个。数组中的数已按由小到大的顺序排列,函数返回删除后数组中数据的个数。
例如, 一维数组中的数据是: 2 2 2 3 4 4 5 6 6 6 6 7 7 8 9 9 10 10 10。
删除后,数组中的内容应该是: 2 3 4 5 6 7 8 9 10。
注意:部分源程序在文件PROG1.C中。
请勿改动主函数main和其它函数中的任何内容, 仅在函数fun的花括号中填入
你编写的若干语句。
给定源程序:
#include <stdio.h>
#define N 80
int fun(int a[], int n)
{
}
main()
{ int a[N]={2,2,2,3,4,4,5,6,6,6,6,7,7,8,9,9,10,10,10,10},i,n=20;
printf("The original data :\n");
for(i=0; i<n; i++)printf("%3d",a[i]);
n=fun(a,n);
printf("\n\nThe data after deleted :\n");
for(i=0;i<n;i++)printf("%3d",a[i]); printf("\n\n");
2013年3月计算机二级C语言上机题库
NONO();
}
解题思路:
本题是删除已排序过数组中的相同数。
1. 取出数组中的第1个数存放在临时变量k中,再利用for循环来依次判断所有的数。
2. 如果取出的数和k相比,如果不相同,则仍存放在原数组中,其中存放的位置由j来控制, 接着把这个数重新存入k。如果相同,则取下一数。
参考答案:
int fun(int a[], int n)
{
int i, j = 1, k = a[0] ;
for(i = 1 ; i < n ; i++)
if(k != a[i]) {
a[j++]=a[i] ;
k = a[i] ;
}
a[j] = 0 ;
return j ;
}
1.C程序是由( 函数 )构成的,一个C程序中至少包含( 一个函数 ) 。因此,( 函数 ) 是C程序的基本单位。
2.C程序注释是由( /* ) 和( */ ) 所界定的文字信息组成的。
3.函数体一般包括( ) 和( ) 。二.判断题
1.一个C程序的执行总是从该程序的main函数开始,在main函数最后结束。 【 】
2.main函数必须写在一个C程序的最前面。 【 】
3.一个C程序可以包含若干的函数。【 】
4.C程序的注释部分可以出现在程序的任何位置,它对程序的编译和运行不起任何作用。但是可以增加程序的可读性。【 】
5.C程序的注释只能是一行。【 】
6.C程序的注释不能是中文文字信息。【 】
8.可以使用Turbo C来编译和连接一个C程序。【 】
2013年3月计算机二级C语言上机题库
9.可以使用Turbo C来运行一个C程序。【 】
10.可以使用Turbo C来实时调试(即动态调试)一个C程序。【 】三.简答题
1. 写出一个C程序的基本结构。
2. 简要叙述使用Turbo C 2.0编译和运行一个程序的步骤。
四.编程题
1. 提高题:参照课本例1.1,试编写一个C程序,输出如下信息。(提示:使用键盘上的一些符号)。
2. 提高题:试编写一个C程序,输出如下信息。
试试看,可以输出其他组合图案吗?第二章 数据类型,运算符与表达式一.选择题
1.合法的字符常量是 。
A) \t B) “A” C) a D) \x32
2、合法的字符常量是 。
A) \084 B) \84 C) ab D) \x43
2. 是C语言提供的合法的数据类型关键字。
A) Float B) signed C) integer D)Char
3.在以下各组标识符中,合法的标识符是。
(1)A)B01 B)table_1 C) 0_t D) k%
(2)A)Fast_ B) void C)pbl D)
(3)A)xy_ B)longdouble C)*p D)CHAR
(4) A) sj B)Int C)_xy D)w_y23
2013年3月计算机二级C语言上机题库
4.属于合法的C语言长整型常量的是 。
A)5876273 B)0L C)2E10 D)(long)5876273
5.下面选项中,不是合法整型常量的是 。
A)160 B)-0xcdg C)-01 D)-0x48a
6.判断int x = 0xaffbc;x的结果是 。
A)赋值非法 B)溢出 C)为affb D)为ffbc
7.下面选项中,均是合法浮点数的是 。
A)+1e+1 B)-.60 C)123e D)-e3
A)5e-9.4 B)12e-4 C)1.2e-.4 D).8e-4
A)03e2 B)-8e5 C)+2e-1 D)5.e-0
8.在C语言中,要求参加运算的数必须时整数的运算符是 。
A)/ B)* C)% D) =
9.在C语言中,字符型数据在内存中以 形式存放。
A)原码 B)BCD码 C)反码 D)ASCII码
10.下列语句中,符合语法的赋值语句是 。
A)a=7+b+c=a+7; B)a=7+b++=a+7;
C)a=(7+b,b++,a+7); D)a=7+b,c=a+7;
11. 是非法的C语言转义字符。
A) \b B) \0xf C) \037 D) \
12.对于语句:f=(3.0,4.0,5.0),(2.0,1.0,0.0);的判断中, 是正确的。
A)语法错误 B)f为5.0 C)f为0.0 D)f为2.0
13.与代数式(x*y)/(u*v) 不等价的C语言表达式是 。
2013年3月计算机二级C语言上机题库
A)x*y/u*v B)x*y/u/v C)x*y/(u*v) D)x/(u*v)*y
14.在C语言中,数字029是一个 。
A)八进制数 B)十六进制数 C)十进制数 D)非法数
15.C语言中整数-8在内存中的存储形式为 。
A)1111111111111000 B)100000000001000
C)000000000001000 D)1111111111110111
16.对于char cx= \039 ;语句,正确的是 。
A)不合法 B)cx的ASCII值是33
C)cx的值为四个字符 D)cx的值为三个字符
17.若int k=7,x=12;则能使值为3的表达式是 。
A)x%=(k%=5) B)x%=(k-k%5)
C)x%=k-k%5 D)(x%=k)-(k%=5)
18.为了计算s=10!(即10的阶乘),则s变量应定义为 。
A)int B)unsigned C)long D)以上三种类型均可
19.以下所列的C语言常量中,错误的是 。
A)0xFF B)1.2e0.5 C)2L D) \72
20.假定x和y为double型,则表达式x=2,y=x+3/2的值是 。
A)3.500000 B)3 C)2.000000 D)3.000000
21.设变量n为float型,m为int类型,则以下能实现将n中的数值保留小数点后两位,第三位进行四舍五入运算的表达式是 。
A)n=(n*100+0.5)/100.0 B)m=n*100+0.5,n=m/100.0
C)n=n*100+0.5/100.0 D)n=(n/100+0.5)*100.0
正在阅读:
2013年3月计算机二级C语言上机题库05-15
SAP常用到的BAPI01-14
计算机习题03-17
模拟联合国大会策划方案01-10
贵州省贵阳市2020年七年级下学期期中生物试卷(I)卷04-27
年度三好学生审批表(小学)08-29
人行地下通道监控量测方案01-12
我心爱的小胡巴作文200字07-04
- 教学能力大赛决赛获奖-教学实施报告-(完整图文版)
- 互联网+数据中心行业分析报告
- 2017上海杨浦区高三一模数学试题及答案
- 招商部差旅接待管理制度(4-25)
- 学生游玩安全注意事项
- 学生信息管理系统(文档模板供参考)
- 叉车门架有限元分析及系统设计
- 2014帮助残疾人志愿者服务情况记录
- 叶绿体中色素的提取和分离实验
- 中国食物成分表2020年最新权威完整改进版
- 推动国土资源领域生态文明建设
- 给水管道冲洗和消毒记录
- 计算机软件专业自我评价
- 高中数学必修1-5知识点归纳
- 2018-2022年中国第五代移动通信技术(5G)产业深度分析及发展前景研究报告发展趋势(目录)
- 生产车间巡查制度
- 2018版中国光热发电行业深度研究报告目录
- (通用)2019年中考数学总复习 第一章 第四节 数的开方与二次根式课件
- 2017_2018学年高中语文第二单元第4课说数课件粤教版
- 上市新药Lumateperone(卢美哌隆)合成检索总结报告
- 上机
- 题库
- 二级
- 语言
- 计算机
- 2013
- 一年级上册的反义词有哪些
- 第6章_营养与饮食的护理_基础护理技术
- 阿都乡情况汇报11.14
- 老鬼数学--高考、中考
- E房月报-2011.6上海二手房市场研究报告
- 房地产典当抵押业务所需材料
- 女大学生培训学习的自我鉴定大全
- Eigenvector statistics in non-Hermitian random matrix ensembles
- 玫瑰精油组成成分
- 美国文学史及选读试卷评分标准(A卷)
- 走路减肥瘦身五种线路与走法
- 近代史之广州烈士陵园
- 八年级物理上册 4.2《光的反射》说课稿 教科版
- 老子的生活智慧与现代社会生活
- 2008中国民营企业500强排序
- 单元整合群文阅读课题方案
- 第十章 液压伺服系统
- 仁:马克思主义政治经济学原理冲刺讲义
- 基于应对国际金融危机的中国经济发展路径选择
- 茯苓多糖的提取纯化及应用研究进展