C语言模拟题总集由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“模拟题c语言答案”。
1. C语言源程序的基本单位是(函数)
2. 若有以下数组a,数组元素:a[0]~a[9],其值为 4 12 8 2 10 7 5 1改数组中下标最小的元素名字是()
3. 按内存排列顺序,数组char a[2]中的所有元素是a[1]和(a[0])4. 设x=5〉1+2,x的值为()5. 设有以下定义的语句:
int a[3][2]={10,20,30,40,50,60},(*p)[2];p=a;则*(*(p+2)+1)值为(60)6. 调用fopen函数打开一文本文件,在使用方式这一项中,为输出而打开需填入(w或w+)7. 执行下列语句后,*(p+1)的值是(b)
char s[3]=”ab”,*p;P=s;8. 函数的(递归)调用时一个函数直接或间接地调用它自身 9. Int x;x=-3+4%-5*3,则x的值是(9)10. 当a=3,b=2,c=1;时,执行以下程序后c=(2)if(a>b)a=b;if(b>c)b=c;else c=b;c=a;判断
1.一个include命令可以指定多个被包含的文件
错 2.若有定义和语句:int a;char c;float f;scanf(“%d,%c,%f””,&a,&c,&f);若通过键盘输入:10,A,12.5,则a=10,c=”A”,f=12.5
对
3.进行宏定义时,宏名必须使用大写字母表示
错
4.整数-32100可以赋值给int型和long int 型变量
对
5.在程序中定义了一个结构类型后,可以多次用它来定义具有该类型的变量
对 6.函数strlen(“ASDFGN”)的值是7
错
7.通过return语句,函数可以带回一个或一个以上的返回值
错 8.若有说明int c;则while(c=getchar());是正确的c语句
对
9.C语言中只能逐个引用数组元素而不能一次引用整个数组
对
10.在c语言环境中,此定义和语句是合法的: enum aa{a=5,b,c}bb;bb=(enum aa)5;
对 11.共同变量所占的内存长度等于最长的成员的长度
对
12.在Turbo C 中,下面的定义和语句是合法的: file *fp;fp=fopen(“a.txt”,”r”);
错 13.Char *p=”girl”;的含义是定义字符型指针变量p,p的值是字符串“girl“
错 14.若有定义和语句: int a[3][3]={{3,5},{8,9},{12,35}},I,sum=0;
for(i=0;i
对
15.Int i=20;switch(i/10){case 2:printf(“A”);case 1 :printf(“B”);} 的输出结果是
AB
单选 16.Int i=20;switch(i/10){case 2:printf(“A”);case 1 :printf(“B”);} 的输出结果是
AB 1.变量p为指针变量,若p=&a,下列说法不正确的事()
A 2.函数ftell(fp)的作用是()
A
3.函数ftell(fp)的作用是()
A 4.下列变量说明语句中,正确的是()
D
5.在c语言的函数中,下列说法正确的是()
C
6.Fgetc函数的作用是从指定文件读入一个字符,该文件的打开方式必须是()
C
7.在位运算中,操作数每右移一位,其结果相当于()
B
XILIE Fgetc函数的作用是从指定文件读入一个字符,该文件的打开方式必须是(8.A
A
填空
1.Int a=1,b=2,c=3;执行语句a += b *= c;后a的值是7。
2.若有以下数组a,数组元素:a[0]~a[9],其值为 9 4 12 8 2 10 7 5 1 3,该数组可用的最小下标值是a[0]
3.C语言的三种基本结构是(顺序)结构,选择结构,循环结构 4.Int x=2,y=3,z=4;则表达式x+y〉z的值为(0)
5.为了避免嵌套条件语句的二义性,c语言规定else与其前面最近的(if)语句配对 6.以下程序的输出结果为(9,10)#include “stdio。h” main(){int a=010,j=10; printf(“%d,%d、n”,++a,j--);} 7.在c语言中,文件的存取是以(字节)为单位的,这种文件被称为(流式文件)文件 8.若有以下定义和语句:int a[5]={1,3,5,7,9},*p;p=&a[2];则++(*p)的值是(6)9.Static int a[3][3]={{1,2,3},{4,5,6},{7,8,9}};其中a[1][2]的值为(6)10.执行下列语句后,*(p+1)的值为(1)char s[3]=“ab”,*p;p=s; 判断
1.#define和printf都不是c语句X 2.int i=20;switch(i/10){case 2:printf(“A”);Case 1:printf(“B”)}的输出结果为AX 3.在c语言中,此定义和语句是合法的:enum aa{ a=5,b,c}bb=(enum aa)5;√ 4.若有定义和语句:inta[3][3]={{3,5},{8,9},{12,35}},i,sum=0;for(i=0;〈i3;i++ sum+=a[i][2-i]; 则sum=21 5.char c[]=“very good”;是一个合法的为字符串数组赋值的语句√ 6.共同体变量所占的内存长度等于最长的成员的长度√ 7.函数strlen(“ASDFGn”)的值是7X 8.c语言中只能逐个引用数组元素而不能一次引用整个数组√ 9.如果函数值的类型和return语句中表达式ide值不一致,则以函数类型为准√ 10.用fopen(“file”,“r+”);打开的文件“file”可以进行修改X 11.char *p=“girl”;的含义是定义字符型指针变量p,p的值是字符串“girl”X 12.结构体类型只有一种X 13.在turbo c中,整型数据在内存中占2个字节X 14.c程序中有调用关系的所有函数必须放在同一个源程序文件中X。15.若有说明int c;则while(c=getchar());是正确的c语句√ 单选
1.指针变量p进行自加运算(即执行p++;)后,地址偏移值为2,则其数据类型为(A)
2.函数ftell(fp)的作用是()3.在位运算中,操作数每右移一位,其结果相当于(B)
4.C语言程序中,当调用函数时(A)
5.C语言中,函数值类型的定义可以缺省,此时函数值的隐含类型是(B)
6.char *math(char c)是(B)
7.以下不符合c语言语法的赋值语句是(C)
8.以下不是无限循环的语句为(A)
9.凡是函数中未指定存储类别的局部变量,其隐含的存储类别为(A)
10.在执行fopen函数时,ferror函数的初值是(D)
填空假设变量a,b均为整型,表达式(a=5,b=2,a>b?a++:b++,a+b)的值是(8)函数调用语句func((e1,e2),(e3,e4,e5))中含有[ ]个实参3 执行语句char str[81]=”abcdef”;后,字符串str结束标志存储在str[ [6] ] 4 在C语言中,最大整型数是[32767 ] 5 以下程序的输出结果为[10],#include”stdio.h”main(){int a;for(a=0;a
] 7 C语言源程序的基本单位是[函数 ] 8 设I,j,k均为int型变量,则执行完下面的for循环后,k的值为[10]。For(i=0,j=10;i
判断一个include 命令可以指定多个被包含的文件
错 2 int i,*p=&i;是正确的C说明
对 3 若有int i=10, j=0;则执行完语句
错 If(j=0)i++;else i--;i的值为11 4 在Turbo C中,下面的定义和语句是合法的:
错 File *fp;fp=fopen(“a.txt”,”r”)5 int a[3] [4]={{1},{5},{9}};它的作用是将数组各行第一列的元素赋初值,其余元素值为0。
对 进行宏定义时,宏名必须使用大写字母表示。
错通过return语句,函数可以带回一个或一个以上的返回值。
错 8 在程序中定义了一个结果体类型后,可以多次用它来定义具有该类型的变量。
对共同体变量所占的内存长度等于最长的成员的长度
对 10 用fopen(“file”,”r+”);打开的文件”file”可以进行修改
单选以下对二维数组a的正确说明是(c)A int a[3] [ ] B float a(3,4)C double a[1][4] D float a(3)(4)2 C语言允许函数类型缺省定义,此时函数值隐含的类型是(B)A float B int C long D double 3设有定义:int N=0,*P=&N,**q=&p;则以下选项中,正确的赋值语句是(D)A p=1 B *q=2 C q=p D *p=5 4 C语言中要求对变量作强制定义的主要理由是(D)A 便于移植 B 便于写文件
C 便于编辑预处理程序的处理 D 便于确定类型和分配空间 5 位字段数据vd单位是()位 A 十六进制 B 八进制 C 二进制 D 十进制以下程序的输出结果是(D)main(){int
i,j,k,a=3,b=2;I=(--a==b++)?---a:++b;J=a++;k=b;Printf(“i=%d,j=%d,k=%dn”,I,j,k);} A i=2,j=1,k=3 B i=1,k=1,k=2 C i=4,j=2,k=4 D i=1,j=1,k=3 7 char *s1=”hello”,*s2;s2=s1;则(C)A s2指向不确定的内存单元 B 不能访问”hello”
C puts(s1);与puts(s2);结果相同 D s1不能再指向其它单元函数调用语句:fseek(fp,-20l,2);的含义是()A 将文件位置指针移到距离文件头20个字节处 B 将文件位置指针从当前位置向后移动20个字节 C 将文件位置指针从文件末尾处退后20个字节 D 将文件位置指针移到离当前位置20个字节处已知p,p1为指针变量,a为数组名,j为整型变量,下了赋值语句中不正确的是(D)。A a=&j,p=p1;B p=a;C p=&a[j];D p=10;10在执行fopen函数时,ferror函数的初值是(D)A TRUE B-1 C 1 D 0
填空若有以下数组a,数组元素:a[0]~a[9],其值为9 4 12 8 2 10 7 5 1 3 该数组中下标最大的元素是a2
2下列程序的运行结果是(65535),main(){unsigned x1;int b=-1;x1=b;printf(“%u”,x1);} 3int x;x=-3+4%5-6,则x的值为(-5)
4已知 a=10,b=15,c=1,d=2,e=0,则表达式!a〈e的值为(0)5在C语言中,最大整数是()
6若有定义:int a=10,b=9,c=8;接着顺序执行下列语句后,变量b中的值是(3)C=(a-=(b-5));C=(a%11)+(b=3);7C语言中,数组名是一个不可变的(指针常)量,不能对它进行加减和赋值运算 8定义
int a[2][3];表示数组a中的元素个数是(6)各 9a=10;b=0;do {b+=2;a-=2+b;} while(a>=0)执行几次3 10执行语句char s[3]=”ab”,*p;p=3;*(p+2)的值是(‘/0’)判断
1#define和printf都不是C语句 ✘ 2结构体类型只有一种
✘
3如果函数值的类型和return语句表达式的值不一致,则以函数类型为准 ✔ 4用fopen(“file”,“r+”);打开的文件 file 可以进行修改✔ 5int i,*p=&i;是正确的C说明✔ 6若有 int i=10,j=0;则执行完语句 if(j=0)i++;else i--;i的值为11 ✘ 7C程序中有调用关系的所有函数必须放在同一个原程序文件中 ✘ 8char *p=“girl”;的含义是定一字符型指针变量p,p的值是字符串“girl” ✘ 9 int a[3][3]={{3,5},{8,9},{12,35}},I,sum=0 For(i=0;I
✔
10在 Turbo C中 file *fp=fopen(a.txt,r);是合法的✘ 单选一下运算等级最低的 A&& B& C| | D|
c 2若以“A+”方式打开一个以存在的文件,正确的事
a A原有文件不删除,位置指针移到文件末尾,可作添加和读操作
B原有文件不删除,位置指针移到文件开头,可作重写和读操作
C原有文件删除,只可作写操作 D都不正确
3对结构体类型的变量的成员的访问,无论数据类型如何都可使用a
4main(){int i=010,j=10;printf(“%d”,%dn,++I,j--);}结果
b
5利用 fseek函数可以实现的操作a
6设一下变量未int类型,则值不等于7的是a
7不正确的bdouble类型数据占d
在C语言程序中
b
10不正确的填空
1. 以下do-while语句中循环体的执行次数是(1)a=10 b=0
do { b+=2;a-=2+b;} while(a>=0);2字符串长度的库函数是[1],只写
3行下面两个语句,输出的结果是[1],char 4语言中调用[fopen]函数来打开文件
5若a是int型变量,且a的初值为6,则执行下面表达式后a的值为。a+=a-=a*a-60 6有定义:int a=10 7有定义:char s [ ] =
则TurboC 系统为数组s开辟[ 6] 个字节的内存单元
8若有以下定义和语句: int a[5]={1,3,5,7,9},*p;p=&a[2];则++(*p)的值是__6__.判断
1有宏定义:#define S(a,b)……所以此宏定义是错误的错 2构体类型只有一种
错 3有定义和语句:int。。。则sum=21
4果函数值的类型和return语句。。则以函数类型为准
对 5果想使一个数组中全部元素为0 可以写成int a[10]={0*10};
错 6加位运算的数据可以是任何类型的数据
错 7ar *p= girl。。。p的值是字符串 girl
对 8efine和printf 都不是C语句
对 单选
1位计算中,操作数每右移一位。。
B
2执行下列语句后,a和b的值分别为()
B 3fseek函数的正确调用形式是()B
4下列
判
断
正
确的事
(C
5char *match(char c)是B
6若有说明:
int
a
[3][4]=
。。正确的叙
述D)
是7为了提高程序的运行速度,在函数。。。的变量
8以下程序的输出结果是()D
【程序填空】
--------------------------
功能:以每行5个数来输出300以内能被7或17整除的偶数,并求出
其和。
------------------------*/
#include #include main(){
int i,n,sum;
sum=0;
/***********SPACE***********/
B
D
n=0;
/***********SPACE***********/
for(i=1;i
/***********SPACE***********/
if(i%7 == 0 || i%17 == 0)
if(i%2==0)
{
sum=sum+i;
n++;
printf(“%6d”,i);
/***********SPACE***********/
if(n%5 == 0)
printf(“n”);
}
printf(“ntotal=%d”,sum);}
2./*------------------------【程序填空】
--------------------------
功能:有n个人围成一圈,顺序排号。从第一个人开始报数(从1
到3报数),凡报到3的人退出圈子,问最后留下的是原来
第几号的那位。
------------------------*/ #include #define nmax 50 main(){
int i,k,m,n,num[nmax],*p;
printf(“please input the total of numbers:”);
scanf(“%d”,&n);
p=num;
/***********SPACE***********/
for(i=0;i
/***********SPACE***********/
*(p+i)=i+1;
i=0;
k=0;
m=0;
while(m
{
/***********SPACE***********/
if(*(p+1)!=0)k++;
if(k==3)
{
*(p+i)=0;
k=0;
m++;
}
i++;
if(i==n)i=0;
}
/***********SPACE***********/
while(*p==0)p++;
printf(“%d is leftn”,*p);}
程序改错
/*-----------------------
【程序改错】
-------------------------
功能:求1到10的阶乘的和。
-----------------------*/ #include main(){
int i;
float s=0;
float fac(int n);
/**********FOUND**********/
for(i=1;i
/**********FOUND**********/
S+=fac(i);
printf(“%fn”,s);} float fac(int n){ /**********FOUND**********/ float y=1;
int i;
for(i=1;i
y=y*i;
/**********FOUND**********/
Return y;}
程序填空
1.功能:计算一元二次方程的根。
------------------------*/
#include /***********SPACE***********/ #include main(){
double x1,x2,imagpart;
float a,b,c,disc,realpart;
scanf(“%f%f%f”,&a,&b,&c);
printf(“the equation”);
/***********SPACE***********/
if(a
printf(“is not quadraticn”);
else
disc=b*b-4*a*c;
if(fabs(disc)
printf(“has two equal roots:%-8.4fn”,-b/(2*a));
/***********SPACE***********/
else if(disc>0)
{
x1=(-b+sqrt(disc))/(2*a);
x2=(-b-sqrt(disc))/(2*a);
printf(“has distinct real roots:%8.4f and %.4fn”,x1,x2);
}
else
{
realpart=-b/(2*a);
imagpart=sqrt(-disc)/(2*a);
printf(“has complex roots:n”);
printf(“%8.4f=%.4fin”,realpart,imagpart);
printf(“%8.4f-%.4fin”,realpart,imagpart);
} } 2.功能:利用全局变量计算长方体的体积及三个面的面积。
------------------------*/ #include int s1,s2,s3;int vs(int a,int b,int c){
int v;
/***********SPACE***********/
v=a*b*c;
s1=a*b;
/***********SPACE***********/
s2=b*c;
s3=a*c;
return v;}
main(){
int v,l,w,h;
printf(“ninput length,width and height: ”);
/***********SPACE***********/
scanf(“%d%d%d”,&l,&w,&h);
/***********SPACE***********/
v=vs(l,w,h);
printf(“v=%d
s1=%d
s2=%d
s3=%dn”,v,s1,s2,s3);} 程序改错
功能:用起泡法对10个整数从小到大排序。
-----------------------*/
#include /**********FOUND**********/ void sort(int x,int n){
int i,j,t;
for(i=0;i
/**********FOUND**********/
for(j=0;j
/**********FOUND**********/
if(x[i]>x[i+1])
{
t=x[j];
x[j]=x[j+1];
x[j+1]=t;
} }
main(){
int i,n,a[100];
printf(“please input the length of the array:n”);
scanf(“%d”,&n);
for(i=0;i
scanf(“%d”,&a[i]);
/**********FOUND**********/
sort(n,a);
printf(“output the sorted array:n”);
for(i=0;i
printf(“%5d”,a[i]);
printf(“n”);}
【程序填空】
--------------------------
功能:计算个人与各科平均成绩及全班平均成绩,并在屏幕上显
示出来。
------------------------*/ #include #define M 5
/*定义符号常量 人数为5*/ #define N 4
/*定义符号常量 课程为4*/
main(){
int i,j;
void aver(float sco[M+1][N+1]);
static float score[M+1][N+1]={{78,85,83,65}, {72,65,54,75},{86,88,75,60},{69,60,50,72}};
aver(score);
printf(“学生编号
课程1
课程2
课程3
课程4
个人平均n”);
for(i=0;i
{
printf(“学生%dt”,i+1);
{88,91,89,93},/***********SPACE***********/
for(j=0;j
printf(“%6.1ft”,score[i][j]);
printf(“n”);
}
for(j=0;j
printf(“-”);
printf(“n课程平均”);
for(j=0;j
printf(“%6.1ft”,score[i][j]);
printf(“n”);}
void aver(float sco[][N+1])
{
int i,j;
/***********SPACE***********/
for(i=0;i
{
for(j=0;j
{
sco[i][N] += sco[i][j];
sco[M][j] += sco[i][j];
sco[M][N] += sco[i][j];
}
/***********SPACE***********/
sco[i][N]/= N;
}
for(j=0;j
/***********SPACE***********/
sco[M][j] /= M;
sco[M][N]=sco[M][N]/M/N;
}
2./*------------------------【程序填空】
--------------------------
功能:删除字符串中的数字字符。
例如:输入字符串:48CTYP9E6,则输出:CTYPE。
------------------------*/
#include /***********SPACE***********/ void fun(char*s)
{
char *p=s;
while(*p)
if((*p>='0')&&(*p
/***********SPACE***********/
else *s++=*p++;
/***********SPACE***********/
*s=’ ’
}
main(){
char item[100];
printf(“nEnter a string: ”);
gets(item);fun(item);
printf(“nThe string:”%s“n”,item);}
改错
/*-----------------------
【程序改错】
-------------------------
功能:用插入排序法将n个字符进行排序(降序)。
提示:插入法排序的思路是:先对数组的头两个元素进行排序,然后根据前两个元素的情况插入第三个元素,再插入第四个元素…)。
-----------------------*/
#define N 81 #include #include
void fun(char *aa, int n){
/**********FOUND**********/
int a ,b,t;
for(a = 1;a
{
t = aa[a];b = a1;
/**********FOUND**********/
while((b>=0)and(t>aa[b]))
{
aa[b+1]=aa[b];b;}
/**********FOUND**********/
aa[b+1] = t
} }
main(){
char a[N];
printf(“nEnter a string: ”);
gets(a);
fun(a , strlen(a));
printf(“nThe string: ”);
puts(a);getch();}
程序填空功能:百马百担问题:有100匹马,驮100担货,大马驮三担,中
马驮2担,两匹小马驮一担,求大、中、小马各多少匹?
------------------------*/
#include main(){
int hb,hm,hl,n=0;
/***********SPACE***********/
for(hb=0;hb
/***********SPACE***********/
for(hm=0;hm
{
/***********SPACE***********/
hl=100-hb-hm;
/***********SPACE***********/
if(hb/3+hm/2+2*hl==100)
{
n++;
printf(“hb=%d,hm=%d,hl=%dn”,hb/3,hm/2,2*hl);
}
}
printf(“n=%dn”,n);} 2 功能:产生并输出杨辉三角的前七行。111111
------------------------*/ #include main(){
int a[7][7];
int i,j;
for(i=0;i
{
a[i][0]=1;
/***********SPACE***********/
a[i][i]=1;;
}
for(i=2;i
/***********SPACE***********/
for(j=1;j
/***********SPACE***********/
a[i][j]= a[i-1][j-1]+a[i-1][j];
for(i=0;i
{
/***********SPACE***********/
for(j=0;j
printf(“%6d”,a[i][j]);
printf(“n”);
} } 程序改错功能:编写函数fun生成一个对角线元素为5,上三角元素为0,下三角元素为1的3*3的二维数组。
-----------------------*/
#include
fun(int arr[][3]){
/**********FOUND**********/
int i,j;
/**********FOUND**********/ for(i=0;i
for(j=0;j
/**********FOUND**********/
if(i==j)
arr[i][j]=5;
else if(j>i)
arr[i][j]=0;
else
arr[i][j]=1;}
main(){
int a[3][3],i,j;
fun(a);
for(i=0;i
{
for(j=0;j
printf(“%d ”,a[i][j]);
printf(“n”);
} }
【程序填空】
--------------------------
功能:求一个二维数组中每行的最大值和每行的和。------------------------*/
#include main(){
int a[5][5],b[5],c[5],i,j,k,s=0;
for(i=0;i
for(j=0;j
a[i][j]=rand()%(40)+20;
for(i=0;i
{
/***********SPACE***********/
k=a[i][0];s=0;
for(j=0;j
{
/***********SPACE***********/
if(k
s=s+a[i][j];
}
b[i]=k;
/***********SPACE***********/ c[i]=s;
}
for(i=0;i
{
for(j=0;j
/***********SPACE***********/
printf(“%5d”, a[i][j]);
printf(“%5d%5d”,b[i],c[i]);
printf(“n”);
} }
/*------------------------【程序填空】
--------------------------
功能:计算并输出high以内最大的10个素数之和,high由主函数传
给fun函数,若high的值为100,则函数的值为732。
------------------------*/
#include #include #include int fun(int high){
int sum = 0, n=0, j, yes;
/***********SPACE***********/
while((high >= 2)&&(n
{
yes = 1;
for(j=2;j
/***********SPACE***********/
if(0==high%j)
{
yes=0;
break;
}
if(yes)
{
sum +=high;
n++;
}
high--;
}
/***********SPACE***********/ return sum;
}
main(){
printf(“%dn”, fun(100));}
*-----------------------
【程序改错】
-------------------------
功能:有1、2、3、4个数字,能组成多少个互不相同且无重复数
字的三位数?都是多少?
-----------------------*/ #include main(){
int i,j,k;
/**********FOUND**********/
printf(“n”);
/**********FOUND**********/
for(i=1;i
for(j=1;j
for(k=1;k
{
/**********FOUND**********/
if(i!=k&&i!=j&&j!=k)
printf(“%d,%d,%dn”,i,j,k);
} }