az计算机二级C语言题目

已知的值为3,表达式i++的值是多少,++i的值是多少,i--的值是多少,--i的值是多少,-i++的值是多少。
3,4,3,2


(i=3,i++,++i,i+5)表达式的值是多少?i的值是多少?

表达式值为10,i的值是5


int x=12;double y=3.141593;
printf("%d%8.6f”,x,y);的输出结果是(A)
A.123.141593
B.12 3.141593
C.12,3.141593
D.123.1415930


真题:(2011-09-16)若有定义:int a,b;,通过语句scanf("%d;%d”,&a,&b);,能把整数3赋给变量a,5付给变量b的输入数据是(C)
A.35
B.3,5
C.3;5
D.35


例:根据学生成绩划分级别90分以上A,60分以下E其余的10分一个等级

#include<stdio.h>
main()
int g;
printf("Enter g:");
scanf("%d",&g);
printf("g=%d",g);
if(g>=90)printf("A\n");//判断级别
else if(g>=80)printf("B\n");
else if(g>=70)printf("C\n");
else if(g>=60)printf("D\n");
else printf("E\n");

例:

y=X>10?100:200
printf("abs(x)=%d",x<0?(-1)*x:x);//求绝对值(abs()表示求绝对值,在这里原样输出)

例:计算 公式1+2+3+4...+n,n取到100的值

#include <stdio.h>
main()
{
   int n=0,sum=0;//定义n个数,sum最后求和项值
   while(n<=100)
   {
       sum=sum+n;//可以简写成sum+=n;
       n++;
    }
printf("sum=9%d\n",sum);
}

例:计算公式1-2+3-4...+n,n取到100的值

#include <stdio.h>
main()
{
      int n=1,sum=0;//定义n个数,sum最后求和项值
      int i=1;//正负号
      while(n<=100)
      {
          sum=sum+i*n;
          n++;
          i=-i;
      }
      printf("sum=%d\n",sum);
}

例:计算公式1-1/2+1/3-1/4...-1/n,n取到100的值

#include <stdio.h>
main()
{
   int n=1;//定义n个数,sum最后求和项值
   double sum=0.0;//初始值设置成浮点数0
   int i=1;/正负号
   while(n<=100)
   {
      sum=sum+i*(1.0/n);//此处不可以写成1/r  
      n++;
      i=-i;
    }
printf("sum=%d\n",sum);
}

例:输出10个*

k=0;
while(k<10)
{
   printf("*");
   k++;
}

例:输出10个*

for(k=0;k<10;k++)
{
printf("*");
}

例:输出10个*

k=0;
for(; k<10;)
{
     printf("*");
     k++;
}

例:结果:1 2

#include<stdio.h>
main()
{
   int i;
   for(i=1;i<=5;i++)
    {
       if(i==3)break;  //判断是否等于用两个等号,break跳出循环或者跳出switch
       printf("%d\n",i);
     }
}

例:结果:1245

#include<stdio.h>
main()
{  int i;
   for(i=1;i<=5;i++)
   {
      if(i==3)continue;//continue结束本次循环
      printf("9%d\n",i);
   }
}

例:
下列哪个是正确的字符常量(D)
A. 'abc'
B. abc
C. "a"
D. 'a'


例:把从终端输入的小写字母转换成大写字母,其他字符不变
分析:
1.小写字母转大写需要减去32
2.如何判断小写字母,在'a'到'z'之间的字符

重点算法字母大小写转换

#include <stdio.h>
main()
{
char c;  //定义一个字符型变量
while(c=getchar())!='\n')//没有读入字符没有到回车时候转换
{
   if(c>='a'&&c<='z')
  {
   c=c-'a'+'A';//或普直接写c=c-32,'a'-'A'=32所以c-32=c-('a'-'A');
   putchar(c);//输出字符c 
   }
}
putchar(\n);
}

重点算法统计字符个数
例:统计字符中大写字母和小写字母个数

#include<stdio.h>
main()
{
int s=0, b=0; //定义变量s为小写字母数量,b为大写字母数量
char c;
while((c=getchar())!='\n')
{
if(c>='a'&&c<='z')s++;
if(c>='A'&&c<='Z')b++;
}
printf("小写字母%d个,大写字母%d个",s,b);
}

例:以下叙述中正确的是(C)
A. C语言程序总是从第一个定义的函数开始执行
B. 在C语言程序中,要调用的函数必须在main()函数中定义
C. C语言程序总是从main0函数开始执行
D. C语言程序中的main0函数必须放在程序的开始改


例:

double add(double x,double y)//定义函数add
{ 
double s;
S=X+y;
return s;
}

例:

double x=10.2,y=19.3,z;
z=add(x,y);
double add(double x,double y)//定义函数add
{ 
double s;
S=X+y;
return s;
}

#include<stdio.h>
void swap(int,int);/*函数说明*/
main()
{
    int x=10,y=20;
    printf("(1)x=%d y=%d\n",x,y);
    swap(x,y);
    printf("(4)x=%d y=%d\n",x,y);
}
void swap(int a,int b)
{
    int t;
    printf("(2)a=%d b=%d\n",a,b);
    t=a;a=b;b=t;
    printf("(3)a=%d b=%d\n",a,b);
}

例:有以下程序:

int func(int a,int b)
{
int c;c=a+b;return c;
}
main()
{  int x=6,y=7,z=8,r;
    r=func((x--,y++,x+y),z--);
    printf("%d\n",r);//r=21
}
# include<stdio.h>
double f(int n)
{   int i; double s; 
     s=1.0;
·    for(i=l; i<=n,i++)s+=1.0/i; 
     return s; 
}
main()
{   int i,m=3; double a=0.0; 
     for(i=0;i<m;i++)  a+=f(i); 
      printf("% f\n",a);   //a=5.5
}

以下程序的输出结果是4

#include <stdio.h>
int fun2(int a,int b)
{intc;
c=(a*b)%3;return c;
}
int fun1(int a,int b)
{int c;
a+=a;b+=b;c=fun2(a,b);
return c*c;
}
main()
{int x=11,y=19;
printf("%d\n',funl(x,y));//4
}

例:若有以下程序

#include <stdio.h>
main()
{int**k,*a,b=100;
a=&b;k=8&a;
printf("%d\n",**k);

程序的输出结果是(B)
A.运行错误
B.100
C.a的地址
D.b的地址

例:

int k,*q,*p;/*k为整型变量,q和p都是指针变量。*/
k=1;  /*给普通变量赋值*/
q=&k;  /*整型变量k的地址赋值给指针变量q*/    p=q;/*将q的值赋值给p*/

例:若有定义:int x,*pb;则正确的赋值表达式是()
A.pb=&x   正确,该变量为指针变量存放x的地址
B.pb=x    错误,pb是指针变量不可存放整型数据
C.*pb=&x   错误,将x地址赋值给一个pb指向的一个内存区域内的东西,若int *pb=&x则正确,不在定义语句中,*为访问符号,定义语句中*只是告知计算机这个变量为指针变量。
D.*pb=*x  错误


解析:

*pb在定义语句中和定义语句外的含义是不同的,比如int *p=&a中的*p指的是p这个变量,只不过是比较特殊的指针变量,而脱离了定义语句的*p的含义是访问p指针变量所指向的内存的区域内的东西


通过指针来引用一个存储单元,“间址运算符"*

#include <stdio.h>
main()
{
int k,*q,*p;
k=1;
q=&k;
p=q ;
printf("%d\n%d\n%d\n",k,*q,*p);
// 答案为:1 1 1
//*p找到p存储的地址指向的那个空间,并把空间中的值拿出来。

例:用指针指向两个变量,通过指针运算选出值最小的那个数

#include<stdio.h>
main()
{
int a,b,min,*pa,*pb,*pmin;
pa=&a; pb=&b;pmin=&min;
scanf("%d%d",pa,pb); //pa, pb 本身就是地址变量不需要加&符号,等价于scanf("%d%d",&a,&b);
printf("a=%d b=%d\n",a,b);
*pmin=*pa;
if(*pa>*pb)*pmin=*pb;
printf("min=%d\n",min);
}

指针比较

if(p<q)
printf("p points to lower memory than q.\n");
else 
printf("q points to lower memory than p.\n");
if(p==\0')printf("p points to NULL\N");

通常两个或多个指针指向同一目标(如同一存储单
元时候)比较才有意义。
形参为指针变量时实参和形参之间的数据传递

#include <stdio.h>
int myadd(int *a int *b)
{int sum;
sum=*a+*b;
return sum;
}
main()
{int x,y,z;
printf("Enter x,y:");
scanf("%d%d”,&x,&y);
z=myadd(&x,&y);
printf("%d+%d=%d\n"x, y, z);
}

例:若有以下程序:

#include<stdio.h>
void sub(int x, int y,int*z)
{*z=y-x;}
main()
{int a,b.c;
sub(10,5,&a);sub(7,a,&b);sub(a,b,&c);
printf("%d,%d,%d\n",a,b,c);
}

程序的输出结果是(B)
A.5,2,3
B.-5,-12,-7
C.-5-12,-17
D.5,-2-7

通过传递地址值在被调用函数中直接改变调
用函数中的变量的值

#include <stdio.h>
void swap(int*,int*);
main()
{int x=30, y=20;
printf("(1)x=%d y=%d\n", x, y);
swap(&x, &y);
printf("(4)x=%d  y=%d\n, x, y);
}
void  swap(int*a,int*b)
{int t;
printf("(2)a=%d b=%d\n",*a,*b);
t=*a;*a=*b;*b=t;
printf("(3)a=%d  b=%d\n",*a,*b);

编写函数order(inta,intb),使调用函数中的第一个实参总是存放两个数中的较小的数,第二参数存放两个数中较大的数。

# include<stdio.h>
void swap(int *xl, int *x2)
{ int t; 
t=*x1;*x1=*x2;*x2=t; 
void order(int *a, int*b)
{ if(*a>*b) swap(a,b);}
main()
{int x, y;
printf("Enter x,y: ");
scanf("%d%d”,&x,&y);
printf("x=%d y=%d\n",x,y);
order(&x,&y);
printf("x=%d y=%d\n",x,y);
}

函数返回地址值

#include <stdio.h>
int *fun(int*, int*); /*函数说明*/

main()
{int*p,i,j;
printf("Enter two number:");
scanf("%d%d",&i,&j);
p=fun(&i,&j);
printf("i=%d, j=%d, *p=%d\n", i, j, *p);//找两个数的最大值
}

int *fun(int*a,int*b)
{if(*a>*b)return a;
return b;}

例:

int i, j, k;
i=1; j=3; k=5;
x[i]=7.5; x[j]=7.5;  x[i+k]=7.5; //等价于 x[i]=7.5; x[3]=7.5;  x[6]=7.5
x[i>j]=8 //等价于x[0]=8

一维数组的初始化(定义时赋初值)
为所定义的数组元索赋初值:
int a[8]={2,4,6,8,10,12,14,16};
等价于:

int a[8];
a[0]=2;a[1]=4;a[2]=6;a[3]=8;a[4]=10;a[5]=12;a[6]=14;a[7]=16;
# include <stdio.h>
# define M 30
main()
{ int s[M],i,k=1; 
for(i=0;i<M;i++){s[i]=k;k+=2;}
printf("\ nSequence Output:\n"); 
for(i=0;i<M;i++)
{ printf("%4d",s[i]); 
if((i+1)%10==0) printf("\n");
}

printf("\ ninvert Output:\n");
for(i=M-1;i>=0;i--)
{printf("%4d",s[i]); 
if(i%10==0)printf("\n");
}
 printf("\n");
}

结果:

 nSequence Output:
   1   3   5   7   9  11  13  15  17  19
  21  23  25  27  29  31  33  35  37  39
  41  43  45  47  49  51  53  55  57  59

invert Output:
  59  57  55  53  51  49  47  45  43  41
  39  37  35  33  31  29  27  25  23  21
  19  17  15  13  11   9   7   5   3   1


--------------------------------
Process exited after 0.3154 seconds with return value 10
请按任意键继续

例:通过循环移动指针给数组赋值

int *p,a[10];
for(p=a;p-a<10;p++)
{
     scanf("%d",p);
}

★通过数组的首地址引用数组元素
例如:

float a[10]={1,2,3,4,5,6,7,8,9,10};//此处是成立的,int类型自动升级为float的,反过来不可以
for(k=0;k<10;k++)pintf("%4d",*(a+k));
for(k=0;k<10;k++)pintf("%4d",a[k]);
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,189评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,577评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,857评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,703评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,705评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,620评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,995评论 3 396
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,656评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,898评论 1 298
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,639评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,720评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,395评论 4 319
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,982评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,953评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,195评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,907评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,472评论 2 342

推荐阅读更多精彩内容

  • 在C语言中,五种基本数据类型存储空间长度的排列顺序是: A)char B)char=int<=float C)ch...
    夏天再来阅读 3,320评论 0 2
  • 计算机二级C语言上机题库(南开版) 1.m个人的成绩存放在score数组中,请编写函数fun,它的功能是:将低于平...
    MrSunbeam阅读 6,314评论 1 42
  • 这是16年5月份编辑的一份比较杂乱适合自己观看的学习记录文档,今天18年5月份再次想写文章,发现简书还为我保存起的...
    Jenaral阅读 2,729评论 2 9
  • 很多人喜欢讨论是否存在公平?答案是这个世界是不公平的,像广州一个村民地被征收以后每个人换了价值千万的房子,有些人出...
    st命阅读 347评论 0 1
  • 十八,梦想书包刚刚装不下 出发,左脚阿迪右脚安踏 不经意间你出现,世间,惊艳~ 你总是笑着,乐着,开心的 这让我不...
    板面加汤阅读 274评论 1 1