1.以下不能输出小写字母a的选项是
A) printf("%c\n","a");
B) printf("%c\n",'A'+32);
C) putchar(97);
D) putchar('a');
A
2.以下叙述中错误的是
A) gets函数用于从终端读入字符串
B) getchar函数用于从磁盘文件读入字符
C) fputs函数用于把字符串输出到文件
D) fwrite函数用于以二进制形式输出数据到文件
B
3.若要求从键盘读入含有空格字符的字符串,应使用函数
A) getchar()
B) getc()
C) gets()
D) scanf()
C
4.以下叙述中正确的是
A) 复合语句在语法上包含多条语句,其中不能定义局部变量
B) 花括号对{}只能用来表示函数的开头和结尾,不能用于其他目的
C) 空语句就是指程序中的空行
D) 当用scanf从键盘输入数据时,每行数据在没按下回车键(Enter键) 前,可以任意修改
D
5.以下叙述中正确的是
A) 在scanf函数的格式串中,必须有与输入项一一对应的格式转换说明符
B) 只能在printf函数中指定输入数据的宽度,而不能在scanf函数中指定输入数据占的宽度
C) scanf函数中的字符串,是提示程序员的,输入数据时不必管它
D) 复合语句也被称为语句块,它至少要包含两条语句
A
6.以下不能输出字符A的语句是(注:字符A的ASCII码值为65,字符a的ASCII码值为97)
A) printf ("%c \n", 'a'-32);
B) printf ("%d \n", 'A');
C) printf ("%c \n", 65);
D) printf ("%c \n", 'B'-1);
B
7.设有定义:int x=7,y=12;,则以下表达式值为3的是
A) y%=(x-x%5)
B) y%=(x%=5)
putchar函数C) y%=x-x%5
D) (y%=x)-(x%=5)
D
8.有以下程序:
#include <stdio.h>
main()
{ int s,t,A=10; double B=6;
s=sizeof(A);t=sizeof(B);
printf("%d,%d\n",s,t);
}
在VC6.0平台上编译运行,程序运行后的输出结果是( )。
A) 10,6
B) 4,4
C) 2,4
D) 4,8
D
9.表达式3.6-5/2+1.2+5%2的值是
A) 4.3
B) 4.8
cssci学术论文网C) 3.3
D) 3.8
D
10.若有定义:double a=22;int i=0,k=18;,则不符合C语言规定的赋值语句是( )
A) i=(a+k)<=(i+k);
B) i=a%11;
C) a=a++,i++;
D) i=!a;
B
第四章 选择结构(分支结构)
有的语句执行0遍
考点一 if
int a=8;
if(a)printf("%d",a);
printf("%d",a);
88
if(表达式)一句话;或者{一段话}
表达式为真,执行后面的一句话;或者{一段话}
表达式为假,不执行后面的一句话;或者{一段话}
有以下程序段:
int a, b, c;
a=10; b=50; c=30;
if (a>b)a=b,b=c;c=a;
printf("a=%d b=%d c=%d\n", a, b, c);
程序的输出结果是( )。
A) a=10 b=50 c=30
B) a=10 b=50 c=10
C) a=10 b=30 c=10
D) a=50 b=30 c=50
B
考点二 if和else
int a=9;
if(a<4)printf("yes");
else printf("no");
no
if(表达式)一句话;或者{一段话}
else 一句话;或者{一段话}
表
达式为真,执行if后面的一句话;或者{一段话}
表达式为假,执行else后面的一句话;或者{一段话}
main()
{ int a=0,b=0,c=0,d=0;
if(a=1) b=1;c=2;
else d=3;
printf("%d,%d,%d,%d\n",a,b,c,d);
}
程序输出( )。
A) 1,1,2,0
B) 0,0,0,3
C) 编译有错
D) 0,1,2,0
C
if和else之间不能有其他东西
把if和else看成一个整体
注意:当一个程序中有多个if和else时,注意else一定要和某个if配对使用
配对原则:
1.离else最近的if
2.没被其他else配过对的if
3.同一层次(同一对{}里面)的if
main()
{ int x=1, y=0;
if (!x) y++;
else if (x==0)
if (x) y+=2;
else y+=3;
printf("%d\n", y);
}
程序运行后的输出结果是( )。
A) 3
B) 2
C) 1
D) 0
有如下嵌套的if语句
if(a<b)
if(a<c) k=a;
else k=c;
else
if(b<c) k=b;
else k=c;
以下选项中与上述if语句等价的语句是
A) k=(a<b)?((b<c)?a:b):((b>c)?b:c);
B) k=(a<b)?((a<c)?a:c):((b<c)?b:c);
C) k=(a<b)?a:b;k=(b<c)?b:c;
D) k=(a<b)?a:b;k=(a<c)?a:c;
考点三 switch
多分支结构
int a=90;
if(a==90) printf("优秀");
else if(a==80)
printf("良好");
else if(a==70)
printf("还行");
else if(a==60)
printf("及格");
else printf("不及格");
int a=90;
switch(a)
{case 90:printf("优");break;
case 80:printf("良");break;
case 70:printf("还");break;
case 60:printf("及");break;
default:printf("不及格");
}
switch(表达式)
{case 常量表达式:...
case 常量表达式:...
通天源码论坛case 常量表达式:...
default:...
}
看表达式的值,用这个值和每个case后面的常量表达式比较,和哪个一样就执行哪个后面的语句。如果没有break,继续执行下一个case后面的语句。
如果有break,强制跳出switch大括号
如果和每个case后面的常量表达式都不一样,执行default后面的语句。
注意:
1.常量表达式必须是整型或者字符型
2.case和常量表达式之间必须有空格
3.default不一定在最后,但是一定等case都不匹配再看default
下列叙述中正确的是( )。
A) 在switch语句中,不一定使用break语句
B) 在switch语句中必须使用default
C) break语句必须与switch语句中的case配对使用
D) break语句只能用于switch语句
A
若以下选项中的变量a, b, y均已正确定义并赋值,则语法正确的switch语句是
A) switch( a*a+b*b )
{ default : break;
case 3 : y=a+b; break;
case 2 : y=a-b; break;
}
B)switch( a+b )
{ case1 : case3 :
y=a+b; break;
case0 : case4 : y=a-b;
}
C) switch (a+9)
{ case a : y=a-b;
case b : y=a+b;
}
D) switch a*b
{ case 10 : y=a+b;
default : y=a-b
;
}
A
若有定义:float x=1.5; int a=1,b=3,c=2; 则正确的switch语句是( )。
A) switch(a+b)
{ case 1: printf("*\n");
case 2+1:printf("**\n"); }
B) switch((int)x);
{ case 1: printf("*\n");
case 2: printf("**\n"); }
C) switch(x)
{ case 1.0:printf("*\n");
case 2.0:printf("**\n"); }
D) switch(a+b)
{ case 1: printf("*\n");
case c: printf("**\n"); }
A
有以下程序:
#include <stdio.h>
main()
{ int x=1, y=0, a=0, b=0;
switch (x)
{ case 1:
switch(y)
{case 0:a++; break;
case 1:b++; break;
}
case 2:a++;b++; break;
case 3: a++; b++;
}
printf("a=%d,b=%d\n",a,b);
}
microsoft access2010程序的运行结果是( )。
A) a=2,b=2
B) a=2,b=1
C) a=1,b=1
D) a=1,b=0
B
用strcat函数连接两个字符串以下选项中与
if(a==1)a=b;
else a++;
语句功能不同的switch语句是
A) switch(a==1)
{case 0:a=b;break;
case 1:a++;
}
B) switch(a)
{case 1:a=b;break;
default : a++;
}
magnitude作为坐标代表什么C) switch(a)
{default:a++;break;
case 1:a=b;
}
D) switch(a==1)
{case 1:a=b;break;
case 0:a++;
}
A
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论