C语言卷子

Python025

C语言卷子,第1张

一、选择题

1,B

2,B

3,A

4,B

5,B

6,A

7,B

8,B

9,A

10,B

二、编程题

1,

void maxmin(a[][],3,4)

{

int i,j,h,lint max=0,min=0

min=a[0][0]h=0l=0

for(i=0i<3i++)

for(j=0j<4j++)

{

if(a[i][j]<min){ min=a[i][j]h=il=j}

}

printf("min=%d\t 行号:%d 列号:%d",min,h,l)

max=a[0][0]h=0l=0

for(i=0i<3i++)

for(j=0j<4j++)

{

if(a[i][j]>max){ max=a[i][j]h=il=j}

}

printf("max=%d\t 行号:%d 列号:%d",min,h,l)

}

2,

#include<stdio.h>

void main()

{

int a[15],temp

int i,j

printf("请输入十五个数(用空格将输入的数字隔开):\n")

for(i=0i<15i++)

scanf("%d",&a[i])

for(i=0i<15i++)

for(j=ij<15j++)

{

if(a[i]<=a[j])

{

temp=a[i]

a[i]=a[j]

a[j]=temp

}

}

printf("排序后:\n")

for(i=0i<15i++)

{

printf("%d\t",a[i])

}

}

3,

#include<stdio.h>

void main()

{

double sum=0,temp=0

int i

for(i=1i<=30i++)

{

temp=1/(i*(i+1))

sum+=temp

}

printf("sum=%d\n",sum)

}

4,

#include<stdio.h>

void main()

{

double a[10],tempint x[10]

int i,j

printf("请输入十个数(用空格将输入的数字隔开):\n")

for(i=0i<10i++)

scanf("%d",&a[i])

for(i=0i<10i++)

x[i]=i+1

for(i=0i<10i++)

for(j=ij<10j++)

{

if(a[i]<=a[j])

{

temp=a[i]

a[i]=a[j]

a[j]=temp

temp=x[i]

x[i]=x[j]

x[j]=temp

}

}

printf("排序后:")

for(i=0i<10i++)

{

printf("%d\t%d\t",a[i],x[i])

}

}

5,

#include<stdio.h>

int main()

{

int i,t,k,a[3]

printf("There are follwing armstrong number smaller than 1000:\n")

for(i=2i<1000i++)

{

a[0]=0a[1]=0a[2]=0

for(t=0,k=1000k>=10t++)

{

a[t]=(i%k)/(k/10)

k/=10

}

if(a[0]*a[0]*a[0]+a[1]*a[1]*a[1]+a[2]*a[2]*a[2]==i)

printf("%5d",i)

}

printf("\n")

}

6,

#include<stdio.h>

main()

{

int i,j,k

for(i=1i<=4i++)

{

for(k=1k<5-ik++)

{

printf(" ")

}

for(j=1j<=2*i-1j++)

{

printf("%d",i)

}

printf("/n")

}

}

三、简答题

1,

for(表达式1表达式2表达式3)

{

循环体

}

执行顺序:表达式1,表达式2,如果表达式2为真则执行循环体和表达式3,

然后再从表达式2开始执行,如果表达是2为假,则跳出循环

2,

当需要处理大量数据或者保存数据时,一般都会用到文件操作,

打开文件时为调取其他文件中的信息,

关闭文件是调用完毕后不需要继续在用其中的信息,若不关闭的话会造成信息混乱。

3,

结构化算法是以处理过程为中心,强调先定义数据结构,然后分析处理逻辑;

4,

switch(表达式)

{

case 常量表达式1:语句1;break

case 常量表达式2:语句2;break

……

case 常量表达式n:语句n;break

default:语句n+1

}

其中表达式为整型、字符型或枚举型,常量表达式具有指定的值,与表达式类型相同。

先执行表达式,若有然后执行与表达式值相同的常量表达式i对应的语句i,如果没有与

表达式相同的值,则执行语句n+1

5,

1>文件包含,#include实现文件包含,在编译之前把指定的文件包含到该指令所在的位置

2>条件编译,根据某个条件是否满足来选择编译内容

3>宏定义指令,#define用来指定正文程序中出现的标号符

6,命名规则:以字母或下划线开始,由字母、数字或下划线组成的符号串。如abc,_a12等

希望对你有用!

1, //返回值的类型是和函数原型定义一致的;如:int argc(){...}函数返回 int类型

2,//你的想法是对的,另外这样的函数为递归函数

3,//步骤a+=a-=a+a此时a=10;执行 a-=a+a后,a=-10(注意此时a被赋值);接着a+=aa=-20

//结合性为从右到左,所以a先被赋值为-10

4,.int f(int n)

{static int m=5//static表示 m变量为静态变量,就是一直保持在内存里的意思

return ++m+n

}

main( )

{int i:

for(i=0i<3i++)

printf("%5d",f(i))

//i=0时,m=6i=1时,m=7;i=2时m=8;此题考察的是static关键字

printf("\n")

}

5,.#define SIZE 4 //宏定义

main( )

{int n[SIZE]={8,3,4,1}//声明并初始化数组;等同于:n[0]=8n[1]=3,n[2]=4n[3]=1

int i,j//声明变量

for (i=0i<SIZEi++)

{printf("%d",n[i])//打印n数组

for(j=1j<=n[i]j++)

printf("*");//打印结果取决于int数组的初始化

printf("\n")

}

}

6.#include<stdio.h>

#include<stdlib.h>//头文件

main( )

{char ch

FILE*fp//定义文件指针

if((fp=fopen("file.dat","________w"))= =NULL) // "w"为 fopen函数的参数,表示打开一个文件,可//以写入文件,先将文件的长度截为0,如果“file.dat"不存在,则先创建文件。

{printf("Can not open file\n")exit(0)}

ch=getchar( )

while (ch!=‘#’)

{fputc(________ch,fp)

//这空是考察fputc(io库函数)的参数的,这个函数表示把指定的字符写到指定的流中,此题是

//写到 file.dat 文件中

ch=getchar( )

}

fclose(________fp)//关闭指针指定的文件,这里是fp对应的”file.dat"文件

//同样是考察fclose(IO库函数)的参数

}

7.

#include<stdio.h>

#define N 100 //宏定义

main0

{int a[N],i,n=0

float sum=0,aver//上面两行是声明变量、数组;

for(i=0i<Ni++)scanf("%d",&a[i]) //读取键盘输入100个整数

for(i=0i<Ni++)

if(a[i]>=0)

{

sum=sum+a[i] //用来计算正整数之和。

n++ //用来计算整数的总个数;

} //上面5行为一个循环,用来得到正整数的和 与正整数与零的总个数

if(n= =0)printf("All numbers are negative!\n")//看是否输入的数字全为小于零的数

//或者不合法,如输入的不是数字

else

{aver=sum\n

printf("aver=%7.2f\n",aver)

}//计算所有大于等于零的数的平均值,保留2位小数点,占7位空间

}

8.

#include<stdio.b>

float area(float t,float b,float h)//三个参数(上底t,下底b,高h)

{

return(t+b)*h*0.5//(上底+下底)*高/2就是梯形面积公式,返回面积

}

main( )

{float t1,b1,h1

scanf("%f%f%f",&t1,&b1,&h1)//读取键盘输入梯形上底、下底和高的值

printf("area=%7.2f\n",area(t1,b1,h1))// %7.2f 为函数 float area()函数返回的值

//同样面积输出为占7位,保留2位小数点;

}

综上,看的出来你们考察C语言的试题不是很难,我觉得这个应该不是大学里面的考试吧?

同时也可以看出你C语法不是很好,不客气的说,你应该什么也没学,最多学到变量声明循环附近

所以,你还是老老实实的把那本谭浩强老师的《C语言程序设计》好好翻翻吧。

不是你该怎么去做那种题,而是你基础根本没打好~~

baadd,abdad

第一题

#include<stdio.h>

int main()

{

char szTest[100]

int i=0

int count[5]={0}//count[0]数字、count[1]大写字母、count[2]小写字母、count[3]空格、count[4]其它字符,初始化为0

scanf("%s",&szTest)

while(szTest[i]!='\0')

{

if(szTest[i]>='0' &&szTest[i]<='9')

count[0]++

else if(szTest[i]>='A' &&szTest[i]<='Z')

count[1]++

else if(szTest[i]>='a' &&szTest[i]<='z')

count[2]++

else if(szTest[i]==' ')

count[3]++

else

count[4]++

i++

}

printf("数字%d 大写字母%d 小写字母%d 空格%d 其它字符%d \n",count[0],count[1],count[2],count[3],count[4])

return 0

}

第二题

long f()

{

int i

long sum

sum = 0

for (i=1 i<=30 i ++)

{

sum += i*(i+1)*(i+2)

}

return sum

}

第三题

#include<iostream>using namespace std

main(){

int i,j

for(i=7i>=1i--)

{for(j=4j>=1j--)

{

printf(j)

printf(\n)

}}

第四题

long t()

{

int i

long sum

long num1

long num2

long num

sum = 0

for (i=1 i<=20 i ++)

{

sum += i*(i+1)*(i+2)

}

for(i=1i=19i++)

{

num1 += i*(i+1)*(i+2)

}

for(i=1i=20i++)

{

num2 += i*(i+1)*(i+2)

}

num=num2-num1

return num

}

第五题

#include "stdio.h"

#define N 10

main()

{

int i,j,k,a[N],t

printf("请输入100个整数:\n")

for(i=0i<Ni++)

scanf("%d",&a[i])

for(i=0i<Ni++)

for(j=i+1j<Nj++)

if(a[i]<a[j])

{t=a[i]a[i]=a[j]a[j]=t}

for(k=0a[k]>0k++)

for(i=0i<ki++)

for(j=i+1j<kj++)

if(a[i]>a[j])

{t=a[i]a[i]=a[j]a[j]=t}

for(i=0i<Ni++)

printf("%d ",a[i])

}

指针与C语言

大家都认为,c语言之所以强大,以及其自由性,很大部分体现在其灵活的指针运用上。因此,说指针是c语言的灵魂,一点都不为过。同时,这种说法也让很多人产生误解,似乎只有c语言的指针才能算指针。basic不支持指针,在此不论。其实,pascal语言本身也是支持指针的。从最初的pascal发展至今的object pascal,可以说在指针运用上,丝毫不会逊色于c语言的指针。

C语言的数据文件:

C语言中可以按文本(ASCII文件)或者二进制方式处理数据文件,文本文件通常用于人们的直接阅读,二进制文件则用于保存程序在运行过程中用到的二进制数据,而且对二进制文件的处理效率也比对ASCII文件要高。

预处理指令:

#空指令,无任何效果

#include包含一个源代码文件

#define定义宏

#undef取消已定义的宏

#if如果给定条件为真,则编译下面代码

#ifdef如果宏已经定义,则编译下面代码

#ifndef如果宏没有定义,则编译下面代码

#elif如果前面的#if给定条件不为真,当前条件为真,则编译下面代码

#endif结束一个#if……#else条件编译块

#error停止编译并显示错误信息

switch语句的语法如下(switch,case和default是关键字):

switch ( controllingExpression )

{

case constantExpression :

statements

break

case constantExpression :

statements

break

...

default :

statements

break

}